Docker 部署 MySQL 8.0 完整指南:從拉取鏡像到配置遠程訪問

目錄

    • 前言
    • 一、拉取鏡像
    • 二、查看鏡像
    • 三、運行容器
      • 命令參數說明:
    • 四、查看運行容器
    • 五、進入容器內部
    • 六、修改 MySQL 配置
      • 1. 創建配置文件
      • 2. 配置內容
    • 七、重啟 MySQL 服務
    • 八、設置 Docker 啟動時自動啟動 MySQL
    • 九、再次重啟 MySQL
    • 十、授權遠程訪問
      • 1. 進入容器內部
      • 2. 登錄 MySQL
      • 3. 選擇數據庫
      • 4. 查看用戶連接權限
      • 5. 修改認證方式和權限
      • 6. 退出容器
    • 完成部署

前言

本方法是通過 yum 方式安裝 MySQL,需要確保宿主機能夠連接網絡。其他安裝方式請自行查閱相關資料。

一、拉取鏡像

# 下面兩個命令效果一致
docker pull mysql
docker pull mysql:latest# 查看可用版本
docker search mysql

二、查看鏡像

使用以下命令查看已安裝的 MySQL 鏡像:

docker images

三、運行容器

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

命令參數說明:

  • -p 3306:3306:宿主機端口與容器端口映射關系
  • --name mysql:容器名稱
  • --restart=always:隨 Docker 自動啟動
  • --privileged=true:獲取宿主機 root 權限
  • -v /usr/local/mysql/log:/var/log/mysql:日志目錄映射(宿主機:容器)
  • -v /usr/local/mysql/data:/var/lib/mysql:數據目錄映射(宿主機:容器)
  • -v /usr/local/mysql/conf:/etc/mysql:配置目錄映射(宿主機:容器)
  • -v /etc/localtime:/etc/localtime:ro:容器與宿主機時鐘同步(ro 表示只讀)
  • -e MYSQL_ROOT_PASSWORD=123456:設置 root 用戶密碼
  • -d mysql:latest:后臺運行最新版 MySQL 容器

四、查看運行容器

# 查看正在運行的容器
docker ps# 查看所有容器
docker ps -a

如果容器狀態顯示為 up,表示啟動成功。如果顯示 restarting,可能存在問題。查看日志:

docker logs -f mysql

可能會發現錯誤:

Failed to access directory for --secure-file-priv. Please make sure that dir

此時如果執行第五步會報錯:

Error response from daemon: Container xxx is restarting, wait until the cont...

需要執行第六步解決。

五、進入容器內部

docker exec -it mysql /bin/bash

六、修改 MySQL 配置

1. 創建配置文件

cd /usr/local/mysql
ll
cd conf
vi my.cnf

2. 配置內容

[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
# 設置東八區時區
default-time_zone = '+8:00'# 設置密碼驗證規則(authentication_policy 替代已廢棄的 default_authentication_plugin)
authentication_policy=mysql_native_password# 限制導入和導出的數據目錄
# 為空:不限制目錄;指定目錄:必須從該目錄導入導出;為 NULL:禁止導入導出功能
secure_file_priv=init_connect='SET collation_connection = utf8mb4_0900_ai_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
skip-character-set-client-handshake
skip-name-resolve

說明:MySQL 8.0+ 默認使用 caching_sha2_password 認證方式,修改為 mysql_native_password 以兼容更多客戶端。

七、重啟 MySQL 服務

docker restart mysql

八、設置 Docker 啟動時自動啟動 MySQL

docker update mysql --restart=always

九、再次重啟 MySQL

docker restart mysql

十、授權遠程訪問

1. 進入容器內部

docker exec -it mysql /bin/bash

2. 登錄 MySQL

mysql -u root -p
# 直接回車進入(使用空密碼)

3. 選擇數據庫

show databases;
use mysql;

4. 查看用戶連接權限

select host, user from user;

root 用戶默認只有 localhost 連接權限。

5. 修改認證方式和權限

ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
update user set host = '%' where host = 'localhost' and user = 'root';-- 刷新權限
flush privileges;-- 退出 MySQL
exit

6. 退出容器

exit

完成部署

現在您的 MySQL 容器已成功部署,并支持遠程連接。

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

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

相關文章

IntelliJ IDEA 常用快捷鍵筆記(Windows)

前言:特別標注的快捷鍵(Windows)快捷鍵功能說明Ctrl Alt M將選中代碼提取成方法Ctrl Alt T包裹選中代碼塊(try/catch、if、for 等)Ctrl H查看類的繼承層次Alt 7打開項目結構面板Ctrl F12打開當前文件結構視圖Ct…

疏老師-python訓練營-Day54Inception網絡及其思考

浙大疏錦行 DAY54 一、 inception網絡介紹 今天我們介紹inception,也就是GoogleNet 傳統計算機視覺的發展史 從上面的鏈接,可以看到其實inceptionnet是在resnet之前的,那為什么我今天才說呢?因為他要引出我們后面的特征融合和…

LeetCode第3304題 - 找出第 K 個字符 I

題目 解答 class Solution {public char kthCharacter(int k) {int n 0;int v 1;while (v < k) {v << 1;n;}String target kthCharacterString(n);return target.charAt(k - 1);}public String kthCharacterString(int n) {if (n 0) {return "a";}Str…

Codeforces Round 1043 (Div. 3) D-F 題解

D. From 1 to Infinity 題意 有一個無限長的序列&#xff0c;是把所有正整數按次序拼接&#xff1a;123456789101112131415...\texttt{123456789101112131415...}123456789101112131415...。求這個序列前 k(k≤1015)k(k\le 10^{15})k(k≤1015) 位的數位和。 思路 二分出第 …

【C語言16天強化訓練】從基礎入門到進階:Day 7

&#x1f525;個人主頁&#xff1a;艾莉絲努力練劍 ?專欄傳送門&#xff1a;《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題、洛谷刷題、C/C基礎知識知識強化補充、C/C干貨分享&學習過程記錄 &#x1f349;學習方向&#xff1a;C/C方向學習者…

【AI基礎:神經網絡】16、神經網絡的生理學根基:從人腦結構到AI架構,揭秘道法自然的智能密碼

“道法自然,久藏玄冥”——人工神經網絡(ANN)的崛起并非偶然,而是對自然界最精妙的智能系統——人腦——的深度模仿與抽象。從單個神經元的信號處理到大腦皮層的層級組織,從突觸可塑性的學習機制到全腦并行計算的高效能效,生物大腦的“玄冥”智慧為AI提供了源源不斷的靈感…

容器安全實踐(一):概念篇 - 從“想當然”到“真相”

在容器化技術日益普及的今天&#xff0c;許多開發者和運維人員都將應用部署在 Docker 或 Kubernetes 中。然而&#xff0c;一個普遍存在的誤解是&#xff1a;“容器是完全隔離的&#xff0c;所以它是安全的。” 如果你也有同樣的想法&#xff0c;那么你需要重新審視容器安全了。…

騰訊開源WeKnora:新一代文檔理解與檢索框架

引言&#xff1a;文檔智能處理的新范式 在數字化時代&#xff0c;企業和個人每天都面臨著海量文檔的處理需求&#xff0c;從產品手冊到學術論文&#xff0c;從合同條款到醫療報告&#xff0c;非結構化文檔的高效處理一直是技術痛點。2025年8月&#xff0c;騰訊正式開源了基于大…

C++之list類的代碼及其邏輯詳解 (中)

接下來我會依照前面所說的一些接口以及list的結構來進行講解。1. list_node的結構1.1 list_node結構體list由于其結構為雙向循環鏈表&#xff0c;所以我們在這里要這么初始化_next&#xff1a;指向鏈表中下一個節點的指針_prev&#xff1a;指向鏈表中上一個節點的指針_val&…

新能源汽車熱管理仿真:蒙特卡洛助力神經網絡訓練

研究背景在新能源汽車的熱管理仿真研究中&#xff0c;神經網絡訓練技術常被應用于系統降階建模。通過這一方法&#xff0c;可以構建出高效準確的代理模型&#xff0c;進而用于控制策略的優化、系統性能的預測與評估&#xff0c;以及實時仿真等任務&#xff0c;有效提升開發效率…

第十九講:C++11第一部分

目錄 1、C11簡介 2、列表初始化 2.1、{}初始化 2.2、initializer_list 2.2.1、成員函數 2.2.2、應用 3、變量類型推導 3.1、auto 3.2、decltype 3.3、nullptr 4、范圍for 5、智能指針 6、STL的一些變化 7、右值引用和移動語義 7.1、右值引用 7.2、右值與左值引…

書寫本體論視域下的文字學理論重構

在符號學與哲學的交叉領域&#xff0c;文字學&#xff08;Grammatologie&#xff09;作為一門顛覆性學科始終處于理論風暴的中心。自德里達1967年發表《論文字學》以來&#xff0c;傳統語言學中"語音中心主義"的霸權地位遭遇根本性動搖&#xff0c;文字不再被視為語言…

為什么要做架構設計?架構設計包含哪些內容?

大家好,我是IT孟德,You can call me Aman(阿瞞,阿彌陀佛的ē,Not阿門的ā),一個喜歡所有對象(熱愛技術)的男人。我正在創作架構專欄,秉承ITer開源精神分享給志同道合(愛江山愛技術更愛美人)的朋友。專欄更新不求速度但求質量(曹大詩人傳世作品必屬精品,請腦補一下《…

Vue2封裝Axios

一、介紹Axios 是一個基于 promise 的 HTTP 庫&#xff0c;簡單的講就是可以發送get、post等請求。二、安裝npm install axios --save二、axios不同請求方式axios(config)這是 Axios 的核心方法&#xff0c;用于發送自定義配置的 HTTP 請求。通過傳入一個包含請求配置的對象&am…

DataAnalytics之Tool:Metabase的簡介、安裝和使用方法、案例應用之詳細攻略

DataAnalytics之Tool&#xff1a;Metabase的簡介、安裝和使用方法、案例應用之詳細攻略 目錄 Metabase的簡介 1、特點 Metabase的安裝和使用方法 1、安裝 快速設置&#xff1a;開發環境 前端快速設置 后端快速設置 2、使用方法 Metabase的案例應用 Metabase的簡介 Met…

frp v0.64.0 更新:開源內網穿透工具,最簡潔教程

frp是一款跨平臺的內網穿透工具&#xff0c;支持 Windows、macOS 與 Linux&#xff0c;它需要你有一臺擁有固定公網 IP 的電腦&#xff0c;VPS 最好&#xff0c;然后就能愉快的進行內網穿透了。還支持 https&#xff0c;甚至可以用它進行小程序開發。Appinn v0.64.0 新增token…

【數據結構】B+ 樹——高度近似于菌絲網絡——詳細解說與其 C 代碼實現

文章目錄B 樹的定義B 樹組織數據的方法往 B 樹中插入鍵值對數據從 B 樹中刪除鍵值對把 B 樹看作是 “真菌網絡”——我理解并記憶 B 樹的方法B 樹的 C 代碼實現初始化節點、B 樹B 樹節點內的二分查找B 樹的數據插入操作B 樹的刪除數據操作范圍查詢與全局遍歷銷毀 B 樹測試代碼&…

01、數據結構與算法--順序表

正式進入數據結構的學習&#xff0c;先從預備知識學起&#xff0c;戒焦戒躁戒焦戒躁...一、泛型的引入1、為什么需要泛型&#xff1f;先來看一個題目&#xff1a;實現一個類&#xff0c;類中包含一個數組成員&#xff0c;使得數組中可以存放任何類型的數據&#xff0c;也可以根…

8.23打卡 DAY 50 預訓練模型+CBAM模塊

DAY 50: 預訓練模型與 CBAM 模塊的融合與微調 今天&#xff0c;我們將把之前學到的知識融會貫通&#xff0c;探討如何將 CBAM 這樣的注意力模塊應用到強大的預訓練模型&#xff08;如 ResNet&#xff09;中&#xff0c;并學習如何高效地對這些模型進行微調&#xff0c;以適應我…

北極圈邊緣生態研究:從數據采集到分析的全流程解析

原文鏈接&#xff1a;https://onlinelibrary.wiley.com/doi/10.1111/1744-7917.70142?afR北極圈邊緣生態研究&#xff1a;從數據采集到分析的全流程解析簡介本教程基于一項在俄羅斯摩爾曼斯克州基洛夫斯克市開展的長期生態學研究&#xff0c;系統講解如何對高緯度地區特定昆蟲…