1. 程式人生 > >centos7.5 上mongdb4.0.3完整單機安裝詳解

centos7.5 上mongdb4.0.3完整單機安裝詳解

目錄

1、下載安裝包(https://www.mongodb.com/download-center#community)

2、解壓安裝包

3、將解壓安裝包移到指定目錄

4、新增到 PATH 

5、建立資料相關目錄

#建立目錄data

#建立存放資料檔案目錄

#建立存放日誌檔案目錄

#建立存放資料庫啟動配置檔案目錄

#建立存放資料庫二進位制檔案目錄

#建立啟動配置檔案mongo.conf

6、啟動服務

7、連線資料庫

1),內建連線命令:mongo

8、接著上面,關閉mongo後臺服務

9、設定開機啟動mongdb

1)、編寫自定義服務

2)、設定許可權

3)、systemctl 啟動命令

4)、開放埠(主要是centos6或更舊版本的設定)

10、基本操作

1)、建立使用者

2)、建立資料庫

3)、給新建立的庫加入使用者

4)、關閉資料庫

5)、常用命令

6)、備份恢復資料庫

7)、系統控制代碼調優(根據實際情況而定)

11、登入認證


mongdb提供了各作業系統的不同安裝包,下面以64位的centos7.5(rehat紅帽系版本系統)為例:

 

 

1、下載安裝包(https://www.mongodb.com/download-center#community
)

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.3.tgz

 

2、解壓安裝包

tar -zxvf mongodb-linux-x86_64-rhel70-4.0.3.tgz

 

3、將解壓安裝包移到指定目錄

[[email protected] soft]# mv mongodb-linux-x86_64-rhel70-4.0.3 /usr/local/mongodb

 

4、新增到 PATH 

MongoDB 的可執行檔案位於 bin 目錄下,所以可以將其新增到 PATH 路徑中:

cd /etc/profile

在檔案最後一行新增:

export MONGODB_HOME=/usr/local/mongodb

export PATH=$PATH:$MONGODB_HOME/bin

source /etc/profile(立即生效)

 

5、建立資料相關目錄

MongoDB的資料儲存在data目錄的db目錄下,但是這個目錄在安裝過程不會自動建立,所以你需要手動建立data目錄,並在data目錄中建立db目錄。

以下例項中我們將data目錄創建於根目錄下(/)。

注意:/data/db 是 MongoDB 預設的啟動的資料庫路徑(--dbpath)。

 

#建立目錄data

mkdir /usr/local/mongodb/mongodb_data

 

#建立存放資料檔案目錄

cd /usr/local/mongodb/mongodb_data

mkdir /usr/local/mongodb/mongodb_data/data

 

#建立存放日誌檔案目錄

mkdir /usr/local/mongodb/mongodb_data/log

 

#建立存放資料庫啟動配置檔案目錄

(可選,也可以不填寫,將採用預設值)

mkdir /usr/local/mongodb/mongodb_data/conf

 

#建立存放資料庫二進位制檔案目錄

(其實這裡就是/usr/local/mongodb/bin,不建立的,在啟動時可以切換到/usr/local/mongodb/bin目錄執行相關啟動服務,這裡我不建立

mkdir bin

 

#建立啟動配置檔案mongo.conf

cd conf

vim mongo.conf

 

配置檔案內容如下:

# http://docs.mongodb.org/manual/reference/configuration-options/


# where to write logging data.

systemLog:
  destination: file
  logAppend: true
  path: /usr/local/mongodb/mongodb_data/log/mongod.log


# where and how to store data.

storage:
  dbPath: /usr/local/mongodb/mongodb_data/data
  journal:
    enabled: true  


# how the process runs
processManagement:
  fork: true    
  pidFilePath: /usr/local/mongodb/mongodb_data/mongod.pid

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

 

【注意】 如果沒有指定bind_ip,會導致mongodb預設繫結為127.0.0.1,導致外部無法訪問,如果希望在外部或遠端訪問,那可以設定  bindIp: 0.0.0.0 這樣就可以不受網路限制了。

 

6、啟動服務

#切換到/usr/local/mongodb/bin目錄下

執行如下啟動命令:

./mongod -f /usr/local/mongodb/mongodb_data/conf/mongo.conf

 

如果順利啟動,將看到如下列印資訊:

[[email protected] bin]# mongod -f /usr/local/mongodb/mongdb_data/conf/mongo.conf
2018-10-15T21:39:40.964+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'

about to fork child process, waiting until server is ready for connections.

forked process: 106236

child process started successfully, parent exiting

 

7、連線資料庫

資料庫安裝並啟動後,便可以連線資料庫了,連線資料庫有好幾種方法,下面介紹其中部分。

 

1),內建連線命令:mongo

具體用法可以查幫助命令:

/usr/local/mongodb/bin/mongo --help

由於我們沒有設定密碼,所以可以在安裝所在伺服器用如下命令嘗試登入test資料庫

./mongo localhost:27017/test   

 # 這裡也可以用僅用命令./mongo ,如果前面我們自定義了連線埠 為12355,而不帶引數的命令./mongo預設是用27017埠的。

或用以下命令

./mongo --port 27017

 

登入成功後以列印資訊未出現的閃動的“>”符號為準,如下:

 

8、接著上面,關閉mongo後臺服務

有多種關閉方式,這裡介紹的是進入mongo互動模式後執行相關關閉命令的方式。

按如下命令操作後顯示,則成功關閉

 

9、設定開機啟動mongdb

1)、編寫自定義服務

在/usr/lib/systemd/system/目錄下新建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/mongodb_data/conf/mongo.conf

ExecReload=ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongodb_data/conf/mongo.conf

[Install]

WantedBy=multi-user.target

【注意】我當時在編寫上面檔案後用systemctl命令無法啟動,會報

此類錯誤,後面查系統日誌檔案/var/log/messages :

當時分析這問題很久沒法解決,後面還是在mongodb.service檔案裡把行與行之間的換行刪掉就沒有報錯了。

2)、設定許可權

chmod 754 mongodb.service

3)、systemctl 啟動命令

 

#啟動服務

systemctl start mongodb.service

#關閉服務

systemctl stop mongodb.service

#開機啟動

systemctl enable mongodb.service

 

4)、開放埠(主要是centos6或更舊版本的設定)

cd /etc/sysconfig/ (切換目錄)

 

iptables檔案新增-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT(注意:-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT要加在-A INPUT -j REJECT --reject-with icmp-host-prohibited之前,不然啟動無效)

 

(注意:如果沒有iptables這個檔案,因為centos7自帶firewall

輸入命令:yum install iptables-services更新或者安裝iptables

然後:systemctl enable iptables 啟動iptables

最後 systemctl start iptables 開啟iptables)

 

10、基本操作

 

1)、建立使用者

use admin

db.createUser(
{
user: "lhy",
pwd: "lu5896848",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

 

2)、建立資料庫

use web

db.items.insert({"name":"web"})

 

3)、給新建立的庫加入使用者

use web

db.createUser(
{
user: "lhy",
pwd: "lu5896848",
roles: [ { role: "readWrite", db: "web" } ]
}
)

 

4)、關閉資料庫

use admin

db.shutdownServer()

 

5)、常用命令

 

use dbname # 使用哪個資料庫

db.auth("user","pwd") # 驗證

show dbs # 顯示所有資料庫

show users # 顯示當前資料庫的所有使用者

db.dropDatabase() # 刪除資料庫

db.shutdownServer() # 關閉資料庫

 

6)、備份恢復資料庫

備份

mongodump -d <資料庫名><資料夾目錄>

恢復

mongorestore -d <資料庫名><資料夾目錄>

 

 

7)、系統控制代碼調優(根據實際情況而定)

 

vim /etc/security/limits.conf

mongod soft nofile 64000

mongod hard nofile 64000

mongod soft nproc 32000

mongod hard nproc 32000

 

11、登入認證

 

上面的配置是沒有密碼認證的,實際環境中是要加登入驗證的 

修改mongod.conf (見文尾參考資料所用配置格式)新增下面的內容:

security:

authorization: enabled

 

重啟mongodb,再次登入(我們以前面配置的lhy賬戶為例(dba賬戶配置的密碼為lu5896848)) 

首先連線mongo,在進行認證

 

# ./bin/mongo --port 12355

MongoDB shell version v4.0.1

connecting to: mongodb://127.0.0.1:27017

MongoDB server version: 4.0.1

> use admin

switched to db admin

> db.auth("lhy","lu58966848")

1

>