记一次--------linux集群连接远程mongo库无法写入数据问题
环境:因为部门集群与公司mongo集群是不在同一集群上,但是在同一内网,所以应该是正常可以访问。
1.确保两个集群之间是可以互相访问的
使用telnet命令
可以正常通信
2.通过mongo shell 测试连接
两种连接方式: mongo -u test -p test --host 127.0.0.1 --port 27017 //适用于mongo版本4.x以下 mongo 127.0.0.1:27017/数据库名 -u test -p test //适用于mongo版本4.x以上
也可以连接成功。
3.将数据库信息配置到程序代码中,执行程序 报错:
日志信息也很明确,连接ip 端口都成功,但是mongo的uri报错。
因为在集群测试的时候,我们首先运行程序写入在本地集群的mongodb一切正常。然后写入远程mongodb就报错。
进行对比,本地mongo的用户密码是简单的test, 而运维给的远程密码是有特殊字符!%等。 怀疑是不是因为特殊字符需要转义。尝试修改远程mongo的用户密码为简单的英文字母组合, 连接成功。
连接mongo需要考虑在uri中拼接如的用户名或者密码找那个有特殊字符,需要进行转义处理。
作者:于二黑
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。