Docker 中部署 MySQL 5.7 并遠程連接 Navicat 的完整指南

個人名片
在這里插入圖片描述
🎓作者簡介:java領域優質創作者
🌐個人主頁:碼農阿豪
📞工作室:新空間代碼工作室(提供各種軟件服務)
💌個人郵箱:[2435024119@qq.com]
📱個人微信:15279484656
🌐個人導航網站:www.forff.top
💡座右銘:總有人要贏。為什么不能是我呢?

  • 專欄導航:

碼農阿豪系列專欄導航
面試專欄:收集了java相關高頻面試題,面試實戰總結🍻🎉🖥?
Spring5系列專欄:整理了Spring5重要知識點與實戰演練,有案例可直接使用🚀🔧💻
Redis專欄:Redis從零到一學習分享,經驗總結,案例實戰💐📝💡
全棧系列專欄:海納百川有容乃大,可能你想要的東西里面都有🤸🌱🚀

目錄

  • Docker 中部署 MySQL 5.7 并遠程連接 Navicat 的完整指南
    • 引言
    • 1. Docker 環境準備
      • 1.1 安裝 Docker(CentOS 7)
    • 2. 部署 MySQL 5.7 容器
      • 2.1 拉取 MySQL 5.7 鏡像
      • 2.2 運行 MySQL 容器
        • (1)基本運行方式(適合測試)
        • (2)生產環境推薦(數據持久化+自動重啟)
    • 3. MySQL 遠程訪問配置
      • 3.1 進入 MySQL 容器
      • 3.2 創建遠程訪問用戶
      • 3.3 檢查用戶權限
    • 4. Windows Navicat 連接 Docker MySQL
      • 4.1 確保網絡可達
      • 4.2 Navicat 連接配置
    • 5. 常見問題排查
      • 5.1 連接被拒絕
      • 5.2 防火墻問題
      • 5.3 用戶權限不足
    • 6. 安全優化建議
    • 7. 總結

Docker 中部署 MySQL 5.7 并遠程連接 Navicat 的完整指南

引言

MySQL 是最流行的關系型數據庫之一,而 Docker 提供了輕量級、可移植的容器化解決方案。本文將詳細介紹如何在 CentOS 7 上使用 Docker 部署 MySQL 5.7,并通過 Windows 上的 Navicat 進行遠程連接。內容涵蓋:

  • Docker 安裝與 MySQL 容器部署
  • MySQL 5.7 的配置與權限管理
  • Navicat 遠程連接及常見問題排查
  • 安全優化建議

適用于 開發、測試及生產環境,確保數據持久化、高可用性和安全性。


1. Docker 環境準備

1.1 安裝 Docker(CentOS 7)

在 CentOS 7 上安裝 Docker:

# 安裝依賴
sudo yum install -y yum-utils# 添加 Docker 官方倉庫
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# 啟動并設置開機自啟
sudo systemctl start docker
sudo systemctl enable docker# 驗證安裝
docker --version

輸出應類似:

Docker version 20.10.12, build e91ed57

2. 部署 MySQL 5.7 容器

2.1 拉取 MySQL 5.7 鏡像

docker pull mysql:5.7

2.2 運行 MySQL 容器

(1)基本運行方式(適合測試)
docker run -d \--name mysql57 \-e MYSQL_ROOT_PASSWORD=yourpassword \-p 3306:3306 \mysql:5.7
(2)生產環境推薦(數據持久化+自動重啟)
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

參數說明:

  • -v /data/mysql:/var/lib/mysql:數據持久化存儲
  • --restart unless-stopped:容器異常退出時自動重啟
  • --bind-address=0.0.0.0:允許遠程連接

3. MySQL 遠程訪問配置

3.1 進入 MySQL 容器

docker exec -it mysql57 mysql -uroot -p

輸入密碼后進入 MySQL Shell。

3.2 創建遠程訪問用戶

-- 創建新用戶(避免直接使用 root)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPass123!';-- 授予所有權限(生產環境建議按需授權)
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;-- 刷新權限
FLUSH PRIVILEGES;

3.3 檢查用戶權限

SELECT host, user FROM mysql.user;

輸出應包含:

+-----------+-------------+
| host      | user        |
+-----------+-------------+
| %         | remote_user |
| localhost | root        |
+-----------+-------------+

4. Windows Navicat 連接 Docker MySQL

4.1 確保網絡可達

  • 如果 Docker 運行在本地:直接使用 127.0.0.1:3306
  • 如果 Docker 運行在遠程服務器:
    • 確保服務器防火墻開放 3306 端口:
      sudo firewall-cmd --add-port=3306/tcp --permanent
      sudo firewall-cmd --reload
      
    • 云服務器需配置安全組規則(如 AWS、阿里云)

4.2 Navicat 連接配置

  1. 打開 Navicat → 新建連接 → MySQL
  2. 填寫連接信息:
    • 連接名:Docker MySQL
    • 主機:服務器IP(或 127.0.0.1
    • 端口:3306
    • 用戶名:remote_user
    • 密碼:StrongPass123!
  3. 測試連接 → 確認

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 (示意圖)


5. 常見問題排查

5.1 連接被拒絕

# 檢查容器是否運行
docker ps# 查看端口映射
docker port mysql57# 檢查 MySQL 日志
docker logs mysql57

5.2 防火墻問題

# CentOS 7 開放端口
sudo firewall-cmd --list-ports
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

5.3 用戶權限不足

-- 檢查用戶權限
SHOW GRANTS FOR 'remote_user'@'%';

6. 安全優化建議

  1. 避免使用 root 遠程連接
  2. 限制訪問 IP:
    GRANT ALL ON *.* TO 'user'@'192.168.1.%' IDENTIFIED BY 'password';
    
  3. 啟用 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
    
  4. 定期備份數據:
    docker exec mysql57 mysqldump -uroot -p --all-databases > backup.sql
    

7. 總結

本文詳細介紹了:

  • Docker 部署 MySQL 5.7(含數據持久化)
  • 遠程用戶權限配置
  • Navicat 連接方法
  • 故障排查與安全優化

通過 Docker 運行 MySQL 不僅簡化了環境配置,還便于遷移和版本管理。結合 Navicat 的圖形化管理,可極大提升開發效率。

適用場景:

  • 本地開發測試
  • 云服務器數據庫部署
  • 微服務架構中的數據庫容器化

進一步學習:

  • MySQL 8.0 容器化部署
  • Navicat 高級使用技巧

附錄:完整 Docker Compose 示例

version: '3.8'
services:mysql:image: mysql:5.7container_name: mysql57environment:MYSQL_ROOT_PASSWORD: yourpasswordMYSQL_USER: remote_userMYSQL_PASSWORD: StrongPass123!ports:- "3306:3306"volumes:- /data/mysql:/var/lib/mysqlrestart: unless-stoppedcommand:--character-set-server=utf8mb4--collation-server=utf8mb4_unicode_ci--bind-address=0.0.0.0

使用方式:

docker-compose up -d

版權聲明
? 2023 數據庫與 Docker 實踐指南。轉載請注明出處。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93056.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93056.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自己動手造個球平衡機器人

你是否曾對那些能夠精妙地保持平衡的機器設備感到好奇? 從無人機到獨輪平衡車,背后都蘊藏著復雜的控制系統。 今天,我們來介紹一個充滿挑戰與樂趣的項目——制作一個球平衡機器人。這不僅是一個酷炫的擺件,更是一次深入學習機器…

21.Linux HTTPS服務

Linux : HTTPS服務協議傳輸方式端口安全性HTTP明文傳輸80無加密,可被竊聽HTTPS加密傳輸443HTTP SSL/TLS 數據加密(防竊聽)身份認證(防偽裝)完整性校驗(防篡改)OpenSSL 證書操作核心命令命令選項…

SqlSugar 跨方法 操作臨時表

.net項目中時長會有用到臨時表的操作結果如下所示但是在SqlSugar中可能因為會話問題導致臨時表訪問受限 搜索到的方式var conn (SqlConnection)sugarClient.Ado.Connection;if (conn.State ! System.Data.ConnectionState.Open) {conn.Open();}using (var cmd new SqlCommand…

怎么用飛算javaAI實現視頻逐幀截圖并保存

相信很多朋友都遇到過這樣的需求:想從視頻中截取特定幀作為素材,卻苦于沒有簡單易用的工具,要么操作復雜難以精準定位,要么導出的圖片質量不佳。市面上的視頻處理軟件要么功能冗余,要么需要付費才能使用逐幀截取功能&a…

【2】Transformers快速入門:統計語言模型是啥?

一句話看懂統計語言模型核心任務:教電腦判斷一句話 “像不像人話” (比如“我愛吃蘋果”? vs “蘋果吃愛我”?)1. 早期:死磕語法規則 → 失敗! 科學家思路(1970年前): 像語文老師一…

[激光原理與應用-230]:物理學主要分支、研究對象、衍生技術及職業方向解析

物理學作為自然科學的核心學科,其分支體系覆蓋從微觀粒子到宏觀宇宙的廣闊領域,并通過交叉融合衍生出眾多前沿技術。以下從經典與現代物理學分支、交叉學科、技術轉化及職業方向四個維度展開分析:一、經典物理學分支:宏觀世界的基…

北京JAVA基礎面試30天打卡08

RocketMQ、RabbitMQ與Kafka對比及常見問題解決方案 一、概述 消息隊列(Message Queue, MQ)是企業IT系統內部通信的核心手段,用于提升性能、實現系統解耦和流量削峰。它具有低耦合、可靠投遞、廣播、流量控制、最終一致性等功能,是…

【CSS 變量】讓你的 CSS “活”起來:深入理解 CSS 自定義屬性與主題切換

【CSS 變量】讓你的 CSS “活”起來:深入理解 CSS 自定義屬性與主題切換 所屬專欄: 《前端小技巧集合:讓你的代碼更優雅高效》 上一篇: 【CSS 視覺】無需JS,純 CSS 實現酷炫視覺效果(clip-path, filter, b…

RAG初步實戰:從 PDF 到問答:我的第一個輕量級 RAG 系統(附詳細項目代碼內容與說明)

RAG初步實戰:從 PDF 到問答:我的第一個輕量級 RAG 系統 項目背景與目標 在大模型逐漸普及的今天,Retrieval-Augmented Generation(RAG,檢索增強生成)作為連接“知識庫”和“大語言模型”的核心范式&#…

自主泊車算法

看我的git 在 open space 空間下規劃出?條??到停?位的?碰撞軌跡 滿?平滑約束 可跟蹤 考慮動態障礙物約束 在路徑不可?的情況下 具備重規劃能? 重規劃時能夠做到?縫切換 即從原路徑?縫切換到重規劃路徑 ?明顯體感 規劃頻率 10HZ

USB 2.0 學習(2)- 連接

上回說到 usb的信號 k 狀態和 j 狀態,補充一下 usb的一些電氣小知識。 1.USB設備有四根線 電源線VBus、 D、 D-、 地線GND 2.USB主機端的 D 和 D-各有1個15k下拉電阻,這是為了準確檢測 D還是D-線上電平的變化 因為USB總線檢測USB設備是低速還是全速設備…

解鎖 Appium Inspector:移動端 UI 自動化定位的利器

? 在移動端 UI 自動化測試中,元素定位是繞不開的核心環節。無論是 Android 還是 iOS 應用,能否精準、高效地定位到界面元素,直接決定了自動化腳本的穩定性和可維護性。而 Appium Inspector 作為 Appium 生態中專門用于元素定位的工具&#…

機器學習概念1

了解機器學習1、什么是機器學習機器學習是一門通過編程讓計算機從數據中進行學習的科學 通用定義:機器學習是一個研究領域讓計算機無須進行明確編程就具備學習能力 工程化定義:一個計算機程序利用經驗E來學習任務T,性能是P,如果針…

前端html學習筆記5:框架、字符實體與 HTML5 新增標簽

本文為個人學習總結,如有謬誤歡迎指正。前端知識眾多,后續將繼續記錄其他知識點! 目錄 前言 一、框架標簽 作用: 語法: 屬性: 二、字符實體 作用: 三、html5新增標簽 語義化 狀態 列…

Day05 店鋪營業狀態設置 Redis

Redis 入門 Redis 簡介 Redis 是一個基于內存的 key-value 結構數據庫。 基于內存存儲,讀寫性能高 適合存儲熱點數據(熱點商品,資訊,新聞) 企業應用廣泛 redis 中文網:Redis中文網 Redis 下載與安裝 R…

Linux驅動開發probe字符設備的完整創建流程

一、 設備號分配1.靜態分配通過register_chrdev_region預先指定設備號(需要確保未被占用)2.動態分配通過alloc_chrdev_region由內核自動分配主設備號,一般都是動態分配以避免沖突。3316 xxxx_dev.major 0; 3317 3318 if (xx…

生產環境中Spring Cloud Sleuth與Zipkin分布式鏈路追蹤實戰經驗分享

生產環境中Spring Cloud Sleuth與Zipkin分布式鏈路追蹤實戰經驗分享 在復雜的微服務架構中,服務調用鏈路繁雜,單點故障或性能瓶頸往往難以定位。本文結合真實生產環境案例,分享如何基于Spring Cloud Sleuth與Zipkin構建高可用、低開銷的分布…

基于Python的《紅樓夢》文本分析與機器學習應用

本文將詳細介紹如何使用Python和機器學習技術對《紅樓夢》進行深入的文本分析和處理,包括文本分卷、分詞、停用詞處理、TF-IDF特征提取以及文本可視化等關鍵技術。一、項目概述本項目的目標是對中國古典文學名著《紅樓夢》進行全面的自動化處理和分析,主…

Bevy渲染引擎核心技術深度解析:架構、體積霧與Meshlet渲染

本文將深入探討Bevy游戲引擎的渲染架構,重點分析其體積霧實現原理、Meshlet渲染技術以及基于物理的渲染(PBR)系統。內容嚴格基于技術實現細節,覆蓋從底層渲染管線到高級特效的全套解決方案。一、Bevy渲染架構深度解析1.1 核心架構…

CASS11計算斜面面積

1.生成三角網2.工程應用--計算表面積--根據三角網