勤能補(bǔ)拙
- 無密碼無認(rèn)證下連接
from pymongo import MongoClient
host = '10.90.10.9' # 你的ip地址
client = MongoClient(host, 27017) # 建立客戶端對象
db = conn.mydb # 連接mydb數(shù)據(jù)庫名惩,沒有則自動創(chuàng)建
myset = db.testset # 使用test_set集合娩鹉,沒有則自動創(chuàng)建
myset.insert({"name":"zhangsan","age":18}) # 插入一條數(shù)據(jù),如果沒出錯那么說明連接成功
# 下面是遍歷查詢數(shù)據(jù)
for i in myset.find():
print(i)
- 有密碼連接
from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#連接mydb數(shù)據(jù)庫,賬號密碼認(rèn)證
db = client.mydb # mydb數(shù)據(jù)庫弯予,同上解釋
db.authenticate("用戶名", "密碼")
collection = db.myset # myset集合锈嫩,同上解釋
collection.insert({"name":"zhangsan","age":18}) # 插入一條數(shù)據(jù),如果沒出錯那么說明連接成功
如果上例發(fā)生錯誤呼寸,如 pymongo.errors.OperationFailure: auth failed
from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#連接mydb數(shù)據(jù)庫,賬號密碼認(rèn)證
db = client.mydb # mydb數(shù)據(jù)庫对雪,同上解釋
db.authenticate("用戶名", "密碼",mechanism='MONGODB-CR') # 增加了mechanism參數(shù),mongoDB有不同的認(rèn)證機(jī)制馋艺,3.0版本以后采用的是'SCRAM-SHA-1', 之前的版本采用的是'MONGODB-CR'
collection = db.myset # myset集合,同上解釋
collection.insert({"name":"zhangsan","age":18}) # 插入一條數(shù)據(jù)捐祠,如果沒出錯那么說明連接成功
好吧雏赦,如果還報錯,還沒有解決星岗,還有一條路可走【繼續(xù)看】
from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#連接mydb數(shù)據(jù)庫,賬號密碼認(rèn)證
db = client.admin # 先連接系統(tǒng)默認(rèn)數(shù)據(jù)庫admin
# 下面一條更改是關(guān)鍵俏橘,我竟然嘗試成功了,不知道為啥寥掐,先記錄下踩的坑吧
db.authenticate("用戶名", "密碼",mechanism='MONGODB-CR') # 讓admin數(shù)據(jù)庫去認(rèn)證密碼登錄召耘,好吧,既然成功了污它,
my_db = client.mydb # 再連接自己的數(shù)據(jù)庫mydb
collection = my_db.myset # myset集合,同上解釋
collection.insert({"name":"zhangsan","age":18}) # 插入一條數(shù)據(jù)德澈,如果沒出錯那么說明連接成功
如果你根據(jù)上面幾種方法還沒解決固惯,我也不知道了,誤導(dǎo)誤撞镇辉,有人看到能解釋下為啥嘛供常,個人啟發(fā)是通過客戶端連接設(shè)置,之前客戶端連接不上,更改了一下設(shè)置才連上的箍镜,如下圖:
image.png
好吧,就是上面標(biāo)紅框的地方手销,才這樣做就成功了图张。
成功實例如下:
image.png
以下參考資料:
https://www.cnblogs.com/melonjiang/p/6536876.html
https://www.cnblogs.com/dplearning/p/5127869.html