版本不同會導致很多問題,我遇到的則是,在初始化資料庫時,在開發環境可以正常執行;但是生產環境的mongodb資料庫版本過低,導致無法成功執行資料庫的初始化指令碼。
執行的 docker-compose.yml
檔案的部分內容如下:
# docker-compose.yml
....
app-mongodb:
image: mongo:latest
container_name: app-mongodb
restart: unless-stopped
# 開啟使用者名稱密碼驗證
command: mongod --auth
# 提供偽終端
# tty: true
environment:
TZ: Asia/Shanghai # 指定時區
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root
MONGO_INITDB_DATABASE: logo
# 使用者名稱:mongodb,密碼:mongodb2024,在mongo-init.js初始化指令碼中建立
# MONGO_INITDB_USERNAME: mongodb
# MONGO_INITDB_PASSWORD: mongodb2024
ports:
- 27017:27017
volumes:
# - ./db/mongodb/init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh
- ./db/mongodb/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
# - ./db/mongodb/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- ./db/mongodb/db:/data/db
- ./db/mongodb/mongoconfig:/data/configdb
....
問題原因:
指定的映象版本不嚴謹 image: mongo:latest
這個latest版本會導致伺服器映象為5.0.5,但是開發環境卻是7.0.11;
解決方案:
將版本指定為具體版本號,如: image: mongo:7.0.11
,這樣就不會出現版本不一致的情況了~
如何檢視Mongodb的版本?
方法一:使用Navicat檢視
使用Navicat檢視Mongodb的資料庫版本:
方法二:docker命令
使用docker命令進入mongodb容器中檢視資料庫版本:
# 進入docker容器
sudo docker exec -it 1cccbe9acd65 bash
# mongosh連線到Mongo例項
mongosh
# 檢視版本資訊
db.version()
使用Navicat檢視Mongodb的資料庫版本:
Redis如何檢視版本資訊
使用docker命令進入redis容器中檢視版本:
執行命令:
# 進入app-redis容器,並檢視版本資訊
sudo docker exec -it [app-redis] redis-server -v
說明: [app-redis] -> 容器名
生產環境:
開發環境: