mongoexport遭遇Authentication failed
今天使用mongoexport工具导出数据,遇到权限不足报错: [host]$mongoexport -h 10.31.11.190:23820 -udbmgr -pMgr2mgdb -d rcmp -c policydata --limit 20000 -o policydata.dat 2017-04-25T11:02:06.599+0800 Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed.
查询用户权限,是有root权限的 mongos> use admin switched to db admin mongos> db.system.users.find({user:"dbmgr"}) { "_id" : "admin.dbmgr", "user" : "dbmgr", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "bVTTgVm0VVByspn7nANRzA==", "storedKey" : "kLS7xO2cJFwSx3qrf4Hz/fNeZaI=", "serverKey" : "QRhOc5+/BmVlPu/58q+MJlNLXmI=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
查询工具的各个参数
mongoexport --help Usage: mongoexport <options>
Export data from MongoDB in CSV or JSON format.
See for more information.
general options: --help print usage --version print the tool version and exit
verbosity options: -v, --verbose more detailed log output (include multiple times for more verbosity, e.g. -vvvvv) --quiet hide all log output
connection options: -h, --host= mongodb host to connect to (setname/host1,host2 for replica sets) --port= server port (can also use --host hostname:port)
ssl options: --ssl connect to a mongod or mongos that has ssl enabled --sslCAFile= the .pem file containing the root certificate chain from the certificate authority --sslPEMKeyFile= the .pem file containing the certificate and key --sslPEMKeyPassword= the password to decrypt the sslPEMKeyFile, if necessary --sslCRLFile= the .pem file containing the certificate revocation list --sslAllowInvalidCertificates bypass the validation for server certificates --sslAllowInvalidHostnames bypass the validation for server name --sslFIPSMode use FIPS mode of the installed openssl library
authentication options: -u, --username= username for authentication -p, --password= password for authentication --authenticationDatabase= database that holds the users credentials --authenticationMechanism= authentication mechanism to use
namespace options: -d, --db= database to use -c, --collection= collection to use
output options: -f, --fields= comma separated list of field names (required for exporting CSV) e.g. -f "name,age" --fieldFile= file with field names - 1 per line --type= the output format, either json or csv (defaults to json) -o, --out= output file; if not specified, stdout is used --jsonArray output to a JSON array rather than one object per line --pretty output JSON formatted to be human-readable
querying options: -q, --query= query filter, as a JSON string, e.g., {x:{$gt:1}} -k, --slaveOk allow secondary reads if available (default true) --forceTableScan force a table scan (do not use $snapshot) --skip= number of documents to skip --limit= limit the number of documents to export --sort= sort order, as a JSON string, e.g. {x:1}
添加--authenticationDatabase=admin ,导出成功
[host]$mongoexport -h 10.31.11.190:23820 -udbmgr -pMgr2mgdb --authenticationDatabase=admin -d rcmp -c policydata --limit 20000 -o policydata.dat 2017-04-25T11:09:57.318+0800 connected to: 10.31.11.190:23820 2017-04-25T11:10:05.301+0800 exported 20000 records
[host]$ls policydata.dat