MongoDB远程连接 Login error的原因及解决办法 Linux shell 脚本命令

先上重点:

     一般的通过linux shell登录MongoDB的命令是这样的:

./mongo 192.168.0.XXX:27017/test -u user -p password

但是,有的时候,这个命令会登录不上去,报login error,原因有可能是:

没有指定authentication mechanism即没有指定身份认证机制。需要加上--authenticationMechanism这个选项,即:

./mongo 192.168.0.XXX:27017/test -u user -p password --authenticationMechanism SCRAM-SHA-1

当然,此处authenticationMechanism的值是有两个选项的:

1、MongoDB 3.0以上版本推荐使用的SCRAM-SHA-1

2、旧的认证机制,MONGODB-CR

其实除了username、password、和authenticationMechanism之外,还有一个选项是digestPassword,是

Boolean类型。



最近工作中,由于种种原因产生了一个需求,需要在一台Linux主机上运行MongoDB,在另一台Linux主机上通过Shell脚本或命令的方式,远程连接并操作MongoDB。

MongoDB在安装后,bin目录下会有很多的可执行文件,其中mongo就是客户端文件。服务端运行着MongoDB,在客户端只需要使用mongo这一个可执行文件,就可以连接远程的MongoDB主机了。不需要在客户端保存所有的MongoDB安装文件。

mongo命令配合IP地址或者域名,可以访问远程的MongoDB,即:

./mongo 10.XXX.XXX.XXX

省略一些头信息:

./mongo 10.XXX.XXX.XXX --quiet

如果远程的MongoDB监听的不是默认的27017端口,还需要指定端口号,即:

./mongo 10.XXX.XXX.XXX:27027

在此基础上,可以指定访问的数据库,默认情况下数据库为admin,如:

./mongo 10.XXX.XXX.XXX:27027/myDatabase

如果需要指定用户名密码,则:

./mongo 10.XXX.XXX.XXX:27027/myDatabase -u userName -p password

指定身份认证方式:

./mongo 10.XXX.XXX.XXX:27027/myDatabase -u userName -p password --authenticationMechanism SCRAM-SHA-1

需要同时运行JavaScript脚本:

./mongo 10.XXX.XXX.XXX test.js

也可以使用-eval直接跟JavaScript语句

./mongo 10.XXX.XXX.XXX –eval “db.test.find()”

在运行这些命令时,需要保证mongo有可执行权限,可以用chmod 777 mongo来解决权限不够的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值