MongoDB,版本5、6.02、7.02適用
記錄兩種使用MongoDB的方法,本地安裝包和docker
本地安裝包方法:Mac M1安裝MongoDB6、后臺運行
Docker Mongo
一、docker運行MongoDB,并設(shè)置用戶名密碼
可以在創(chuàng)建容器的時候指定root用戶名密碼(加上參數(shù)MONGO_INITDB_ROOT_USERNAME、MONGO_INITDB_ROOT_PASSWORD)
也可以在容器運行后,進入容器連接數(shù)據(jù)庫使用mongoshell創(chuàng)建用戶
注意執(zhí)行命令的路徑!可以新建一個文件夾,mkdir mongodb7,用來映射config和db文件。
目前最新版本是7.0.2
#為了命令行看起來更清晰,加了換行符\,注意格式,\后面不能有空格
docker run \
--name mongodb7 \
-p 27017:27017 \
-v $PWD/mongodb/configdb:/data/configdb/ \
-v $PWD/mongodb/data/db/:/data/db/ \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=password \
-d mongo \
--auth
#進入mongo容器
docker exec -it mongodb7 /bin/bash
二、按需編輯配置
如果要編輯配置,比如bindIp,需要新建一個mongod.conf配置文件,MongoDB 容器在啟動時會自動生成一個默認的配置文件,并將其命名為 /etc/mongod.conf.orig,我們可以復(fù)制它再編輯
#docker 鏡像中沒有vim,安裝vim
apt-get update -y
apt-get install vim
#復(fù)制默認配置
cp /etc/mongod.conf.orig /etc/mongod.conf
vi /etc/mongod.conf
#修改后重啟容器
三、容器內(nèi)連接數(shù)據(jù)庫
進入docker容器輸入mongo,連接到數(shù)據(jù)庫
舊版本命令是mongo,新版本用mongoshmongosh
默認數(shù)據(jù)庫是test
如果在第一步docker指令中已經(jīng)設(shè)置了用戶名和密碼,可以驗證一下用戶名密碼,再執(zhí)行其他操作
db.auth(“root”,“password”)
沒有auth就會報錯要求身份認證
然后創(chuàng)建admin用戶,以后使用uri連接要加上用戶名和密碼,比如比如mongodb://root:password@localhost:27017/
數(shù)據(jù)庫軟件可以用mongo官方的compass(免費),jet的datagrip,navicat最新版本也支持mongodb
如果沒有在docker指令中指定root用戶密碼,可以創(chuàng)建一個
show dbs
#切換到admin數(shù)據(jù)庫
use admin
#新建用戶
db.createUser({user: "root",pwd: "password",roles: [ { role: "root", db: "admin" } ]})
#身份驗證
db.auth("root","password")
如果在其他應(yīng)用中使用uri連接數(shù)據(jù)庫,比如mongodb://root:password@localhost:27017/database-name?authSource=admin
要注意連接的數(shù)據(jù)庫有沒有對應(yīng)的用戶,確認在哪個數(shù)據(jù)庫建的用戶。在默認情況下,MongoDB會將用戶憑據(jù)存儲在admin數(shù)據(jù)庫中
四、導(dǎo)出、恢復(fù)數(shù)據(jù)庫
需要用到導(dǎo)出、恢復(fù),mongo數(shù)據(jù)庫工具在這里下載
https://www.mongodb.com/try/download/database-tools
(筆者在恢復(fù)過程遇到了點問題用舊版本mongodb-database-tools-100.6.1-1解決了,記錄一下)
1、恢復(fù)數(shù)據(jù)庫
和連接數(shù)據(jù)庫的uri一樣也要注意用戶憑據(jù)存在哪個數(shù)據(jù)庫,下面的指令 目標數(shù)據(jù)庫不存在的話會自動創(chuàng)建,–dir指定備份文件所在文件夾,–db指定恢復(fù)到哪個數(shù)據(jù)庫。如果是密鑰登陸,就使用–sslCAFile ./pem文件路徑。到bin文件夾執(zhí)行mongorestore程序。文章來源:http://www.zghlxwxcb.cn/news/detail-726201.html
./mongorestore --host localhost:27017 \
--dir ./database-backup --db database-name \
--username root --password password \
--authenticationDatabase=admin
2、導(dǎo)出數(shù)據(jù)庫
–out指定輸出的路徑,不存在文件夾會自動創(chuàng)建文章來源地址http://www.zghlxwxcb.cn/news/detail-726201.html
./mongodump --host localhost:27017 \
--out ./output --db database-name \
--username root --password password \
--authenticationDatabase=admin
到了這里,關(guān)于Mac M1運行、連接 Docker MongoDB7。導(dǎo)出、恢復(fù)數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!