现在的情况是这样的
我在腾讯云上买了一个 mongodb 数据库 M 和一个云服务器 E,两个组成一个私有网络 ,
在云服务器 E 上使用 mongo 客户端连接,是能够连上 mongodb 数据库的。
现在有个问题,我想在本地访问 mongodb 数据库,也就是外网访问云私有网络中的 mongodb 数据库。
所以我的做法是
- 在云服务器 E 的安全组添加 一个 TCP:9001 端口允许的规则。
- 在去服务器 E 上安装 xinetd,配置如下
service mongo-portmap {
id = 100
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
wait = no
redirect =10.0.0.17 27017
bind = 0.0.0.0
port = 9001
user = cqh
group = cqh
flags = NODELAY KEEPALIVE NOLIBWRAP IPv4
log_type = FILE /data/log/xinetd/mongo-portmap.log
cps = 100 30
}
- 在本地使用 mongo shell 进行连接,命令如下 :
mongo 云服务器 IP:9001/admin -u 用户名 -p 密码 -verbose
但是却显示有错误,错误结果如下
MongoDB shell version: 2.4.9
Thu Jun 29 10:26:57.684 versionArrayTest passed
connecting to: 服务器 IP:9001/admin
Thu Jun 29 10:26:57.707 creating new connection to:服务器 IP:9001
Thu Jun 29 10:26:57.707 BackgroundJob starting: ConnectBG
Thu Jun 29 10:26:57.741 connected connection!
Thu Jun 29 10:26:57.890 User Assertion: 18:{ ok: 0.0, errmsg: "auth failed", code: 18 }
Thu Jun 29 10:26:57.891 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:228
Thu Jun 29 10:26:57.891 User Assertion: 12514:login failed
Thu Jun 29 10:26:57.891 freeing 1 uncollected N5mongo20DBClientWithCommandsE objects
exception: login failed
当然我能确保,用户名和密码是对的,我是直接复制过来的
,现在的问题是我怎么知道哪里错了呢,我连 xinetd 的日志都没有看到,我是 ubuntu16.04 apt-get install 安装 的 xinetd
