在CentOS7上安裝MongoDB4.2
參考資料
官方網站 產品手冊 NoSQL添加REPO文件
使用vi或者vim編輯/etc/yum.repos.d/mongodb-enterprise.repo文件,把下面的內容複製到文件中然後保存退出。示例中是安裝4.2版本,目前最新的版本是4.4,如需安裝最新版本,請修改示例中4.2為4.4。
[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/4.2/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
執行安裝操作,並啟動服務
yum install -y mongodb-enterprise
systemctl enable mongod
systemctl start mongod
創建管理員帳號
mongodb默認是匿名連接的,我們需要開啟登錄驗證就必須先在匿名連接的狀態下創建好登錄帳號並進行授權。如果不先建立帳號就直接開啟登錄驗證,那麼我們將無法連接到mongodb服務了。下面的示例中我們創建一個帳號為my_account,密碼為my_password的帳號,並給它授權為數據庫的管理員。
use admin;
db.createUser({user:"my_account",pwd:"my_password",roles:[{role:"userAdminAnyDatabase",db:"admin"},"readWriteAnyDatabase"]});
exit
修改配置文件,開啟登錄驗證
使用vi或者vim編輯/etc/mongod.conf,修改綁定的IP和端口,然後開啟登錄驗證。詳細內容可以參考下面的示例。
net:
port: 27017
bindIp: 0.0.0.0
security:
authorization: enabled
重啟服務,驗證修改是否生效
將服務重啟後,我們連接上mongodb,注意此時是可以成功建立連接的,當我們去執行命令的時候才會提示需要授權。那麼表示我們開啟登錄授權是成功了,接下來我們用剛剛建立的帳號進行授權操作,授權成功後我們就可以進行數據庫的任何操作了。使用的命令參考下方示例。
systemctl restart mongod
mongo
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
use admin;
db.auth('my_account','my_password');
創建自己的數據
mongodb是無需執行創建數據庫的命令,直接使用不存在的數據庫名就可以自動創建它。我們通常不建議使用管理員賬戶來連接數據庫,所以我們還需要為新的數據庫重新創建一個屬於它的賬戶。下面的示例中,我們創建一個名為my_db的數據庫,同時為它建立一個賬戶。
use my_db;
db.createUser({user:"my_db_admin",pwd:"my_db_password",roles:[{role:"dbAdmin",db:"my_db"},"readWrite"]});
數據庫的備份與還原
mongodb的數據庫備份文件是存放在一個目錄中的多個文件,而我們平時常用的關係型數據庫的備份結果是一個獨立文件。所以我們備份完成以後通常還需要用壓縮工具壓縮成一個獨立文件再拷貝轉移。下面是備份及還原數據庫的示例。
mongodump -u my_db_account -p my_db_password -d my_db -o /home
mongorestore -d my_db -u my_db_account -p my_db_password --drop /home/my_db/