Docker中部署MySQL 5.7并遠(yuǎn)程連接Navicat的完整指南
引言
MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)之一,而 Docker 提供了輕量級(jí)、可移植的容器化解決方案。本文將詳細(xì)介紹如何在 CentOS 7 上使用 Docker 部署 MySQL 5.7,并通過(guò) Windows 上的 Navicat 進(jìn)行遠(yuǎn)程連接。內(nèi)容涵蓋:
- Docker 安裝與 MySQL 容器部署
- MySQL 5.7 的配置與權(quán)限管理
- Navicat 遠(yuǎn)程連接及常見(jiàn)問(wèn)題排查
- 安全優(yōu)化建議
適用于 開(kāi)發(fā)、測(cè)試及生產(chǎn)環(huán)境,確保數(shù)據(jù)持久化、高可用性和安全性。
1. Docker 環(huán)境準(zhǔn)備
1.1 安裝 Docker(CentOS 7)
在 CentOS 7 上安裝 Docker:
# 安裝依賴 sudo yum install -y yum-utils # 添加 Docker 官方倉(cāng)庫(kù) sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安裝 Docker sudo yum install docker-ce docker-ce-cli containerd.io -y # 啟動(dòng)并設(shè)置開(kāi)機(jī)自啟 sudo systemctl start docker sudo systemctl enable docker # 驗(yàn)證安裝 docker --version
輸出應(yīng)類(lèi)似:
Docker version 20.10.12, build e91ed57
2. 部署 MySQL 5.7 容器
2.1 拉取 MySQL 5.7 鏡像
docker pull mysql:5.7
2.2 運(yùn)行 MySQL 容器
(1)基本運(yùn)行方式(適合測(cè)試)
docker run -d \ --name mysql57 \ -e MYSQL_ROOT_PASSWORD=yourpassword \ -p 3306:3306 \ mysql:5.7
(2)生產(chǎn)環(huán)境推薦(數(shù)據(jù)持久化+自動(dòng)重啟)
docker run -d \ --name mysql57 \ -e MYSQL_ROOT_PASSWORD=yourpassword \ -p 3306:3306 \ -v /data/mysql:/var/lib/mysql \ --restart unless-stopped \ mysql:5.7 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_unicode_ci \ --bind-address=0.0.0.0
參數(shù)說(shuō)明:
-v /data/mysql:/var/lib/mysql
:數(shù)據(jù)持久化存儲(chǔ)--restart unless-stopped
:容器異常退出時(shí)自動(dòng)重啟--bind-address=0.0.0.0
:允許遠(yuǎn)程連接
3. MySQL 遠(yuǎn)程訪問(wèn)配置
3.1 進(jìn)入 MySQL 容器
docker exec -it mysql57 mysql -uroot -p
輸入密碼后進(jìn)入 MySQL Shell。
3.2 創(chuàng)建遠(yuǎn)程訪問(wèn)用戶
-- 創(chuàng)建新用戶(避免直接使用 root) CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPass123!'; -- 授予所有權(quán)限(生產(chǎn)環(huán)境建議按需授權(quán)) GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; -- 刷新權(quán)限 FLUSH PRIVILEGES;
3.3 檢查用戶權(quán)限
SELECT host, user FROM mysql.user;
輸出應(yīng)包含:
+-----------+-------------+ | host | user | +-----------+-------------+ | % | remote_user | | localhost | root | +-----------+-------------+
4. Windows Navicat 連接 Docker MySQL
4.1 確保網(wǎng)絡(luò)可達(dá)
- 如果 Docker 運(yùn)行在本地:直接使用
127.0.0.1:3306
- 如果 Docker 運(yùn)行在遠(yuǎn)程服務(wù)器:
確保服務(wù)器防火墻開(kāi)放 3306 端口:
sudo firewall-cmd --add-port=3306/tcp --permanent sudo firewall-cmd --reload
- 云服務(wù)器需配置安全組規(guī)則(如 AWS、阿里云)
4.2 Navicat 連接配置
- 打開(kāi) Navicat → 新建連接 → MySQL
- 填寫(xiě)連接信息:
- 連接名:Docker MySQL
- 主機(jī):服務(wù)器IP(或
127.0.0.1
) - 端口:
3306
- 用戶名:
remote_user
- 密碼:
StrongPass123!
- 測(cè)試連接 → 確認(rèn)
5. 常見(jiàn)問(wèn)題排查
5.1 連接被拒絕
# 檢查容器是否運(yùn)行 docker ps # 查看端口映射 docker port mysql57 # 檢查 MySQL 日志 docker logs mysql57
5.2 防火墻問(wèn)題
# CentOS 7 開(kāi)放端口 sudo firewall-cmd --list-ports sudo firewall-cmd --add-port=3306/tcp --permanent sudo firewall-cmd --reload
5.3 用戶權(quán)限不足
-- 檢查用戶權(quán)限 SHOW GRANTS FOR 'remote_user'@'%';
6. 安全優(yōu)化建議
- 避免使用 root 遠(yuǎn)程連接
限制訪問(wèn) IP:
GRANT ALL ON *.* TO 'user'@'192.168.1.%' IDENTIFIED BY 'password';
啟用 SSL 加密(可選):
docker run -v /mysql/ssl:/etc/mysql/ssl ... mysql:5.7 --ssl-ca=/etc/mysql/ssl/ca.pem --ssl-cert=/etc/mysql/ssl/server-cert.pem --ssl-key=/etc/mysql/ssl/server-key.pem
定期備份數(shù)據(jù):
docker exec mysql57 mysqldump -uroot -p --all-databases > backup.sql
7. 總結(jié)
本文詳細(xì)介紹了:
- Docker 部署 MySQL 5.7(含數(shù)據(jù)持久化)
- 遠(yuǎn)程用戶權(quán)限配置
- Navicat 連接方法
- 故障排查與安全優(yōu)化
通過(guò) Docker 運(yùn)行 MySQL 不僅簡(jiǎn)化了環(huán)境配置,還便于遷移和版本管理。結(jié)合 Navicat 的圖形化管理,可極大提升開(kāi)發(fā)效率。
適用場(chǎng)景:
- 本地開(kāi)發(fā)測(cè)試
- 云服務(wù)器數(shù)據(jù)庫(kù)部署
- 微服務(wù)架構(gòu)中的數(shù)據(jù)庫(kù)容器化
附錄:完整 Docker Compose 示例
version: '3.8' services: mysql: image: mysql:5.7 container_name: mysql57 environment: MYSQL_ROOT_PASSWORD: yourpassword MYSQL_USER: remote_user MYSQL_PASSWORD: StrongPass123! ports: - "3306:3306" volumes: - /data/mysql:/var/lib/mysql restart: unless-stopped command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --bind-address=0.0.0.0
使用方式:
docker-compose up -d
以上就是Docker中部署MySQL 5.7并遠(yuǎn)程連接Navicat的完整指南的詳細(xì)內(nèi)容,更多關(guān)于Docker部署MySQL 5.7并連接Navicat的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用docker環(huán)境變量動(dòng)態(tài)配置nginx的問(wèn)題小結(jié)
這篇文章主要介紹了使用docker環(huán)境變量動(dòng)態(tài)配置nginx,整個(gè)方案,采用的是通過(guò)docker run -e xxxx=xxx先往容器注入環(huán)境變量,然后進(jìn)一步通過(guò)envsubst指令將環(huán)境變量寫(xiě)入到具體的文件當(dāng)中,實(shí)現(xiàn)動(dòng)態(tài)配置文件內(nèi)容,需要的朋友可以參考下2022-06-06Docker搭建NetBox的實(shí)現(xiàn)示例
NetBox是一個(gè)開(kāi)源的數(shù)據(jù)中心基礎(chǔ)設(shè)施管理和IP地址管理平臺(tái),本文主要介紹了Docker搭建NetBox的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04Docker進(jìn)入容器并運(yùn)行命令的方法及常見(jiàn)問(wèn)題解決
Docker?是一個(gè)開(kāi)源的應(yīng)用容器引擎,它允許開(kāi)發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的?Linux?機(jī)器上,也可以實(shí)現(xiàn)虛擬化,這篇文章主要介紹了Docker進(jìn)入容器并運(yùn)行命令的方法及常見(jiàn)問(wèn)題,需要的朋友可以參考下2025-05-05docker安裝部署 onlyoffice的詳細(xì)過(guò)程
本文給大家分享docker安裝部署 onlyoffice的詳細(xì)過(guò)程,通過(guò)圖文并茂實(shí)例相結(jié)合給大家分享安裝Docker Desktop及如何進(jìn)入BIOS設(shè)置CPU的虛擬化,感興趣的朋友一起看看吧2021-06-06centOS中安裝docker-composer時(shí)報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了centOS中安裝docker-composer時(shí)報(bào)錯(cuò)問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05