2.21更新:
安裝后本地通過robo 3T連接正常,但是其它機器通過IP連接時報錯,繼續查找,解決方案在這里(傳送門),原因是mongodb安裝完成后默認監聽本地地址,也就是127.0.0.1,這樣只能通過localhost或127.0.0.1連接,通過其它IP就不行了,改下配置文件即可。在/etc目錄下的mongod.conf文件中,修改bindIp為0.0.0.0,如下:
這樣就能通過本機IP連接了。
1.28更新:
事實證明,前面完全錯了,根本沒找到問題所在亂解決,根據前面的安裝雖然能用,但是裝的是Ubuntu提供的mongo包,官網(傳送門)上說的很清楚,非官方提供,不提供支持,並且裝的是3.6.3而不是4.0.5,真是被自己蠢哭!
最后我根據官網上的安裝說明裝的,裝完后使用
sudo service mongod start
這時去監控/var/log/mongodb.log下面的日志,發現其實報錯了
提示/var/lib/mongodb是只讀的,現在嘗試寫,不允許,最初搜資料說給這個文件夾設置寫權限,我用777設置了,不行,於是按他們說的第二種方法,把這個文件夾的用戶更改為當前用戶loki,依然不行,最后發現
這個文件夾擁有者所在的組是mongodb,之前好像看過說服務啟動時是以mongodb用戶啟動的,於是
sudo chown -R mongodb mongodb
把文件夾擁有者改為mongodb,再次啟動mongod服務,成功!
為什么會出現這個問題呢?還不確定,不知道 是不是因為之前安裝時留下的坑,后面我再在一台新的虛擬機上裝下試試,但是前面安裝問題很大,沒找到根本原因就直接瞎解決,最終啥也沒解決,這一點需要好好反思!
1.28下午更新:
在新的虛擬機上又安裝了一遍,根據官方的步驟安裝一切正常,所以上面的權限問題應該是之前安裝留下的坑。
1.23安裝記錄
我是用的安裝包安裝的,下載地址:https://www.mongodb.com/download-center/community
選擇Server后再選擇Ubtuntu 18.04 64bit即可,安裝不提,很簡單。
安裝完成后並不能用,首先在終端輸入mongo命令時提示要安裝mongo-client,於是執行如下命令安裝:
sudo apt install mongodb-clients
安裝完后再輸入mongo命令,發現可以連了,正要開心,卻發現提示無法連接到服務器- -
大概提示是connect refused,搜資料,在這里發現說是服務器沒起來,鏈接如下:大佬1
於是執行mongod命令,卻發現啟動不起來,繼續看上面的鏈接,發現是要指定數據庫的路徑,於是執行如下命令:
mongod -dbpath "/var/lib/mongodb/"
原以為能正常啟動,卻發現太天真,提示還要裝一個server-core,於是裝:
sudo apt install mongodb-server-core
再次執行mongod命令,服務終於正常啟動,再打開一個終端輸入mongo也能連了,但是跟上面鏈接說的一樣,服務窗口不能關啊,一關服務就停了,這很坑啊
我先是嘗試把服務配成系統服務,讓它后台運行,於是執行下面命令:
sudo systemctl enable mongod.service
卻提示找不到這個文件:Unit file mongod.service does not exist
於是我根據這個鏈接:大佬2
在/etc/systemd/system下新建了一個mongod.service文件,內容如下:
[Unit] Description=High-performance, schema-free document-oriented database After=network.target [Service] User=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf [Install] WantedBy=multi-user.target
之后將mongod設置為系統服務,
sudo systemctl enable mongod sudo systemctl daemon-reload sudo service mongod start
沒報錯,好像是設置成功了,但是執行mongo命令依然連接不上,沒辦法,只好使用上面大佬1的方法了,把mongod服務設置成后台運行,命令如下:
mongod -fork -f /etc/mongod.conf
這樣窗口關掉也能連接mondodb了,暫時這樣搞了。后面看看服務到底怎么設置。