背景:
import pymongo myclient = pymongo.MongoClient("mongodb://1.2.3.4:27017") auth = myclient.admin auth.authenticate("user", "12345678") mydb = myclient["test"] collist = mydb.list_collection_names() if "test1" in collist: print("集合已存在!")
报错,连接不上1.2.3.4:27017。
telnet 1.2.3.4 27017,发现连接不上。
原因: mongod启动方式不对。
解决方法:mongod --auth --dbpath /var/lib/mongo --config /etc/mongod.conf
说明: vi /etc/mongod.conf ,
/var/lib/mongo 为db data storage
port:27017
ip:0.0.0.0
其他备注:
mongodb默认是无权限可以访问,设置权限
use admin
db.createUser(
{
user: "user",
pwd: "12345678",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)
之后可以 --Auth登录了,
其他命令:
开通端口:
firewall-cmd --zone=public --add-port=27017/tcp --permanent
重新载入
firewall-cmd --reload
防火墙
systemctl status firewalld