早前自己的阿里云测试服务器,第一次用Robo 3T连接mongodb的时候,也出现过外网无法连接的问题,解决之后,不需要账户权限验证Robo 3T是可以连接,当然这是不安全的。
如之前记录的文章
centos7服务器外网无法连接mongodb的解决方法
最近新的服务器,同样照上面文档安装配置,发现连接的时候出现Error: Failed to execute “listdatabases错误了,如图:
浏览器运行http://xx.xxx.xxx.xx:27017/ 说明外网可以访问了。
It looks like you are trying to access MongoDB over HTTP on the native driver port。
最后网上查了一下资料,说原因是因为没有指定数据库的登录权限,在使用图形界面软件连接的时候,需要账户和密码的,这也是当然的,为了安全性。
那就先创建个用户,也安全一点,先用mongo连接数据库
1、创建管理员用户
use admin db.createUser({user:"admin", pwd: "123456", roles: ["root"]}) db.auth("admin", "123456")
由于admin用户是root超级权限,用这个账户就可以访问所有数据库了。
2、添加数据库用户
比如自己的数据库叫malluse mall db.createUser({user: "name", pwd: "123456", roles: [{ role: "dbOwner", db: "mall" }]})dbOwner:表示在当前数据库中可以执行任意操作
如图所示,这样连接就可以成功了。
在此简单记录一下。