MongoDB 安裝和解除安裝(親測適用win10)
content
- MongoDB 安裝過程及注意事項
- MongoDB 解除安裝過程及注意事項
- 安裝解除安裝過程中報過的錯
- 幾點補充
1. MongoDB 安裝過程
(1) 下載安裝包
下載地址
選擇3.6 MSI版本,下文以mongodb 3.6為示例
(2) 安裝mongdo到指定的目錄
如:D:\MongoDB\Server\3.6
(3) 安裝注意
安裝過程中,不要勾選 Install MongoDB Compass, 這是安裝官方的視覺化工具,一方面連結其官網下載速度非常慢,另外該工具也特別不好用,建議用CMD直接操作
安裝完成畫面
(4) 將 D:\MongoDB\Server\3.6\bin 新增到環境變數中
環境變數的作用:
將特定的目錄新增到環境變數(path變數中)中,那麼在任意的 cmd 目錄下都可以執行 該目錄下的可執行命令
使用者變數: 當前登入使用者的變數設定,修改 只有本使用者起作用
系統變數: 對所有使用者都起作用的
修改了 環境變數後, 必須重啟cmd 才起作用!
(5) 配置mongod.conf檔案(如下),並且在D:\MongoDB下新建 data和log 資料夾
配置mongod.conf檔案
(6) 配置注意
注意一:
如果是生產環境,需要使用驗證模式
即開啟使用者認證
auth=true
切記,否則會導致資料庫風險
注意二:
繫結ip
127.0.0.1: 本機IP
localhost: 等同於 127.0.0.1
192.168.8.2: 區域網IP, 所有192.168 開頭的ip,都是區域網IP
除了本機外, 區域網的機器都可以訪問(前提是要關閉防火牆或者開放允許訪問埠號)
121.69.88.226: 外網IP, 所有網際網路的機器都可以訪問
0.0.0.0: 最終的預設IP,所有以上4個型別的ip來源都可以訪問!
(7) 以管理員身份開啟cmd命令視窗
可以CMD切換到 D:\MongoDB\Server\3.6\bin 目錄下,當然這個步驟如果環境變數安裝正確,就不用考慮
(8) 將mongodb安裝為服務
方式一:
在cmd命令視窗中輸入 mongod --install -f “D:\MongoDB\Server\3.6\mongod.conf”
方式二:
mongod --config "D:\ MongoDB\Server\3.6\mongod.conf " --install
(9) 安裝完成後,使用 net start mongodb 啟動服務
2. MongoDB 解除安裝過程
-
先stop服務
cmd下用
sc stop mongodb -
然後想徹底清掉mongodb,需要delete服務
sc delete MongoDB -
注意!!名字是個坑,需要跟我的電腦中的服務中的mongodb,保證服務名稱大小寫一致
-
然後再是軟體解除安裝,資料庫刪除。以上需基於服務已經完全停止並且刪除
3. 安裝解除安裝過程中報過的錯
(1) net start mongodb發生系統錯誤2 系統找不到指定的檔案
解決方法:
-
開啟控制面板-管理工具-服務
-
點選mongodb服務,右鍵屬性發現啟動位置仍在在上次的安裝路徑下c:\program files\mongodb,沒有改成D盤(就是你自己的安裝盤)
-
我們需要先stop服務
sc stop mongodb
然後想徹底清掉mongodb,需要delete服務
sc delete MongoDB
(2) Connect failed
(3)"not authorized on test to execute command { listCollections: 1.0 }
雖然這個錯誤很簡單,但是初次接觸mongodb,被這個錯折磨到凌晨2點…也感謝提供答案的博主…
mongodb進行操作時,出現errmsg" : "not authorized on test to execute command { listCollections: 1.0 }這個提示
表示沒有許可權,那就趕緊新增使用者吧
切換到admin庫
use admin;
新增使用者
db.createUser( {
user: "sa",
pwd: "sa",
roles: [ { role: "root", db: "admin" } ]
});
既然已經添加了使用者
用sa賬號登入
db.auth('sa','sa');
幾點補充:
1、常見安裝問題:
- 設定環境變數,是設定 path 變數
- 2個目錄之間,使用 ; (不是中文狀態下的;) 進行分隔
- 不要使用中文目錄,甚至不要使用 ‘Program Files’
- 引用檔案的符號是: “” 而不是 “”
2、程式設計中, 不要使用 中文 作為
資料夾、檔案、變數、類都使用 字母、數字、_ 作為字串就好了,可以檢視一下PEP8
3、返回資訊識別:
“ok” : 1 # 代表成功了
“ok” : 0 # 代表失敗了
“err” : 1 # err 是 error 的簡寫, 代表失敗
“err” : 0 # 代表沒有錯, 成功了
“error” : 1
“error” : 0
4、常見的配置檔案
conf、cfg、ini、xml等
5、 delete 和 truncate
- delete:
delete * from table_name
速度慢
會寫日誌
逐條刪除
自增id不會恢復 - truncate:
truncate table table_name
速度快
整個表在磁碟刪除,在使用對應的 DDL 生成一個新表
不寫日誌
自增ID會從1開始
6、mongodb _id 欄位
如果 json 文件 中 沒有指定 _id key,那麼 mongodb會自動寫入 _id key
{ "_id" : ObjectId("5bf661a3bde7ac69f29185e7"), "name" : "terry", "age" : 18 }
{ "_id" : ObjectId("5bf66259bde7ac69f29185e8"), "name" : "mary" }
{ "_id" : ObjectId("5bf66259bde7ac69f29185e9"), "name" : "hanmeimei" }
{ "_id" : "myid", "name" : "lilei", "age" : 20 }
查詢時,
系統生成的 _id 必須這樣訪問:
db.test.find({'_id': ObjectId("5bf66259bde7ac69f29185e8")})