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

经验分享 程序员 微信小程序 职场和发展