mongoexport遭遇Authentication failed

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 http://docs.mongodb.org/manual/reference/program/mongoexport/ 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 user‘s 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

 

以上是关于mongoexport遭遇Authentication failed的主要内容,如果未能解决你的问题,请参考以下文章

使用来自 mongoexport 的一个查询导出 json 文件时出错

Mongodb的mongoexport怎么使用

mongoexport导出记录到csv文件

记一次mongoexport导出数据

Mongodb数据导出命令mongoexport和导入命令mongoimport介绍

php 执行mongoexport 利用 exec执行