Docker 方式部署 MySQL 數(shù)據(jù)庫,一看就會!
在日常開發(fā)和測試中,部署數(shù)據(jù)庫常常是件繁瑣的事。但有了Docker,一切都變得簡單高效!今天,我們就一起來用Docker快速部署一個MySQL數(shù)據(jù)庫,讓你告別繁瑣配置,輕松上手!
為什么用Docker部署MySQL?
傳統(tǒng)方式安裝MySQL往往需要:
- 下載安裝包
- 手動配置環(huán)境變量
- 調(diào)整配置文件
- 處理版本兼容問題
使用Docker后,你只需一條命令,就能搞定一切:
- 快速拉起所需版本
- 無需擔心依賴沖突
- 容器隨時啟停、刪除,干凈利落
部署準備
確保你已安裝以下環(huán)境:
- Docker 環(huán)境(推薦Docker Desktop或通過 apt/yum 安裝)
- 基礎(chǔ)命令行操作知識
root@racknerd-a7aa50:~# docker --version
Docker version 27.5.1, build 9f9e405
一條命令跑起 MySQL 容器!
docker run -d \
--name mysql-demo \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /data/mysql:/var/lib/mysql \
mysql:8.0
參數(shù)說明:
- -d:后臺運行容器
- --name:給容器起個名字
- -p:端口映射(本機3306 → 容器3306)
- -e:設(shè)置環(huán)境變量(如 root 密碼)
- -v:掛載本地目錄,持久化數(shù)據(jù)庫數(shù)據(jù)
- mysql:8.0:使用 MySQL 8.0 官方鏡像
建議設(shè)置復(fù)雜一點的密碼,避免安全隱患。
驗證是否部署成功
執(zhí)行以下命令查看容器狀態(tài):
docker ps -a
輸出中看到 mysql-demo 正在運行說明成功啦!如下圖所示:
你也可以用MySQL客戶端或工具(如 Navicat)連接測試。如下圖所示:
常用操作命令
查看日志:
docker logs -f mysql-demo
進入容器內(nèi)部:
docker exec -it mysql-demo bash
停止容器:
docker stop mysql-demo
刪除容器:
docker rm -f mysql-demo
數(shù)據(jù)持久化說明
使用 -v /data/mysql:/var/lib/mysql 參數(shù),將容器中的數(shù)據(jù)目錄映射到宿主機 /data/mysql,即使容器刪除,數(shù)據(jù)依然存在。建議定期備份該目錄,防止意外丟失。
小貼士:添加自定義配置文件
如果你想使用自己的 MySQL 配置文件:
docker run -d \
--name mysql-demo \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /data/mysql:/var/lib/mysql \
-v /my/custom/my.cnf:/etc/mysql/my.cnf \
mysql:8.0
這樣可以靈活調(diào)整參數(shù),比如連接數(shù)、字符集等。如果你覺得 docker run 命令太長太繁瑣,那你一定會喜歡 docker-compose!我們只需寫好一個配置文件,執(zhí)行一條命令即可完成部署。
version: '3.8'
services:
mysql:
image:mysql:8.0
container_name:mysql-demo
restart:always
ports:
-"3306:3306"
environment:
MYSQL_ROOT_PASSWORD:123456
MYSQL_DATABASE:testdb
MYSQL_USER:testuser
MYSQL_PASSWORD:testpass
volumes:
-./mysql-data:/var/lib/mysql
-./my.cnf:/etc/mysql/my.cnf # 可選:自定義配置
說明:
- 啟動后將自動創(chuàng)建 testdb 數(shù)據(jù)庫和一個 testuser 用戶;
- 數(shù)據(jù)將存儲到當前目錄下的 ./mysql-data 文件夾中;
- 可掛載 my.cnf 實現(xiàn)自定義參數(shù)配置。
總結(jié)
通過Docker部署MySQL:
- 簡單快速
- 易于管理
- 更適合開發(fā)測試環(huán)境
- 輕松實現(xiàn)版本控制和環(huán)境隔離
不管你是開發(fā)者還是運維人員,掌握這一技能,能大大提升效率!