1. 程式人生 > >linux mongodb安裝啟動與停止

linux mongodb安裝啟動與停止

        MongoDB是一個基於分散式檔案儲存的資料庫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。
        MongoDB是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。他支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料型別。Mongo最大的特點是他支援的查詢語言非常強大,其語法有點類似於面向物件的查詢語言,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引
       MongoDB強大的類sql查詢語言,感受到MongoDB與其它Nosql資料庫的異同之處。

由於自己的部落格上線部署時需要用到mongodb來儲存圖片檔案,所以先在本地電腦上安裝了mongodb做測試,由於之前沒接觸過mongodb,所以安裝過程中遇到了各種小問題,折騰了好久終於安裝好併成功啟動服務了。這裡決定寫一篇部落格來記錄一下安裝過程以及遇到的問題的解決方案。

  先寫一下安裝並啟動mongodb正確的步驟,然後再總結其中遇到的問題。

一、安裝過程

1.到mongodb官網下載對應系統的壓縮包,我的系統是centos6.6,64位(192.168.125.128)。(注意不要選錯系統版本,也可以在本地下載好後上傳到雲伺服器)

下載:

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel55-3.2.12.tgz

[[email protected] ~]$ cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m
 

2.預設下載路徑是到使用者目錄下的Downloads目錄,將其解壓

tar -zxvf mongodb-linux-x86_64-3.2.12.tgz

3.將解壓後的資料夾移動到/usr/local目錄下

[[email protected] ~]$ sudo mv -ft /usr/local mongodb-linux-x86_64-2.4.2

[[email protected]

local]$ sudo mv mongodb-linux-x86_64-2.4.2 mongodb

4.配置系統檔案profile

sudo vi /etc/profile

插入下列內容:

export MONGODB_HOME=/usr/local/mongodb  
export PATH=$PATH:$MONGODB_HOME/bin

注意儲存後要重啟系統配置:

source /etc/profile

5.建立用於存放資料和日誌檔案的資料夾,並修改其許可權增加讀寫許可權

複製程式碼

cd /usr/local/mongodb
sudo mkdir -p data/db
sudo chmod -R 777 data/db
sudo mkdir logs
cd logs
sudo touch mongodb.log

複製程式碼

6.mongodb啟動配置

進入到bin目錄,增加一個配置檔案:

cd /usr/local/mongodb/bin  
sudo vi mongodb.conf

插入下列內容:

dbpath = /usr/local/mongodb/data/db #資料檔案存放目錄  
logpath = /usr/local/mongodb/logs/mongodb.log #日誌檔案存放目錄  
port = 28017  #預設埠27017  
fork = true  #以守護程式的方式啟用,即在後臺執行  
nohttpinterface = true 

7. 啟動mongod資料庫服務,以配置檔案的方式啟動

cd /usr/local/mongodb/bin
./mongod -f mongodb.conf

[[email protected] bin]$ sudo ./mongod -f mongodb.conf --logappend
about to fork child process, waiting until server is ready for connections.
forked process: 6385
all output going to: /usr/local/mongodb/logs/mongodb.log
child process started successfully, parent exiting

8.連線mongodb資料庫

./mongo

第一次裝的版本是2.4.2

[[email protected] bin]$ sudo ./mongo
MongoDB shell version: 2.4.2
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
>

在瀏覽器中診斷訪問http://192.168.125.128:27017

You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number

用robomongo客戶端連線

9.mongodb提供了關閉資料庫的命令:

直接kill -9 pid(程序id號)

首先需要進入到mongodb目錄下bin/mongo,連線到mongodb,然後執行下面指令碼:

use admin
db.runCommand("shutdown")

上面第一行切換到admin資料庫,第二行則是執行關閉操作

也可以使用db.shutdownServer()命令

在bin目錄下./mongod --shutdown或./mongod -f ../etc/mongo.conf --shutdown

[[email protected] bin]$ sudo ./mongod --shutdown -f mongodb.conf
killing process with pid: 6651

配置開機啟動及系統服務https://blog.csdn.net/luozhonghua2014/article/details/77860268

10.設定mongodb.service啟動服務,設定開機啟動

cd /lib/systemd/system  
sudo vi mongodb.service 

編輯其內容為:

複製程式碼

[Unit]  
Description=mongodb  
After=network.target remote-fs.target nss-lookup.target  
  
[Service]  
Type=forking  
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf  
ExecReload=/bin/kill -s HUP $MAINPID  
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/bin/mongodb.conf  
PrivateTmp=true  
  
[Install]  
WantedBy=multi-user.target

複製程式碼

11.設定mongodb.service許可權

chmod 754 mongodb.service

12.系統mongodb.service的操作命令如下:

複製程式碼

#啟動服務  
systemctl start mongodb.service  
#關閉服務  
systemctl stop mongodb.service  
#開機啟動  
systemctl enable mongodb.service 

複製程式碼

13.mongodb.service啟動測試

 

二、安裝過程中遇到的問題

1.

mongod: error while loading shared libraries: libnetsnmpmibs.so.30: cannot open shared object file: No such file or directory

這個報錯資訊是說找不到對應的庫檔案,原因是一開始我下錯了安裝包版本,所以在下載是一定要注意自己系統的版本

2.通過配置檔案啟動服務:mongod -f /etc/mongodb.conf 時報錯

Error parsing INI config file: unrecognised option 'nohttpinterface' try './

這個一開始讓我查了好久,後面查到是因為我下載的最新版本的mongodb,而最新的版本貌似不支援以這種配置檔案的方式來啟動服務,所以無奈我又重新下載安裝了3.2.12的版本,然後再次啟動服務就正常了。

3.啟動服務時報錯:

about to fork child process, waiting until server is ready for connections.
forked process: 11335
ERROR: child process failed, exited with error number 1
這個錯誤原因是dbpath檔案的許可權問題,data和logs目錄增加寫許可權即可,上面提到了。

4.啟動時報錯:

[[email protected] bin]$ ./mongod -f mongodb.conf

about to fork child process, waiting until server is ready for connections.
forked process: 6377
all output going to: /usr/local/mongodb/logs/mongodb.log
log file [/usr/local/mongodb/logs/mongodb.log] exists and couldn't make backup [/usr/local/mongodb/logs/mongodb.log.2018-04-26T22-27-28]; run with --logappend or manually remove file: errno:13 Permission denied
Bad logpath value: "/usr/local/mongodb/logs/mongodb.log"; terminating.
ERROR: child process failed, exited with error number 1