Docker部署MySQL8.0從拉取鏡像到配置遠程訪問完整指南
前言
本方法是通過 yum 方式安裝 MySQL,需要確保宿主機能夠連接網(wǎng)絡(luò)。其他安裝方式請自行查閱相關(guān)資料。
一、拉取鏡像
# 下面兩個命令效果一致 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
命令參數(shù)說明:
-p 3306:3306:宿主機端口與容器端口映射關(guān)系--name mysql:容器名稱--restart=always:隨 Docker 自動啟動--privileged=true:獲取宿主機 root 權(quán)限-v /usr/local/mysql/log:/var/log/mysql:日志目錄映射(宿主機:容器)-v /usr/local/mysql/data:/var/lib/mysql:數(shù)據(jù)目錄映射(宿主機:容器)-v /usr/local/mysql/conf:/etc/mysql:配置目錄映射(宿主機:容器)-v /etc/localtime:/etc/localtime:ro:容器與宿主機時鐘同步(ro 表示只讀)-e MYSQL_ROOT_PASSWORD=123456:設(shè)置 root 用戶密碼-d mysql:latest:后臺運行最新版 MySQL 容器
四、查看運行容器
# 查看正在運行的容器 docker ps # 查看所有容器 docker ps -a
如果容器狀態(tài)顯示為 up,表示啟動成功。如果顯示 restarting,可能存在問題。查看日志:
docker logs -f mysql
可能會發(fā)現(xiàn)錯誤:
Failed to access directory for --secure-file-priv. Please make sure that dir
此時如果執(zhí)行第五步會報錯:
Error response from daemon: Container xxx is restarting, wait until the cont...
需要執(zhí)行第六步解決。
五、進入容器內(nèi)部
docker exec -it mysql /bin/bash
六、修改 MySQL 配置
1. 創(chuàng)建配置文件
cd /usr/local/mysql ll cd conf vi my.cnf
2. 配置內(nèi)容
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] # 設(shè)置東八區(qū)時區(qū) default-time_zone = '+8:00' # 設(shè)置密碼驗證規(guī)則(authentication_policy 替代已廢棄的 default_authentication_plugin) authentication_policy=mysql_native_password # 限制導(dǎo)入和導(dǎo)出的數(shù)據(jù)目錄 # 為空:不限制目錄;指定目錄:必須從該目錄導(dǎo)入導(dǎo)出;為 NULL:禁止導(dǎo)入導(dǎo)出功能 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 服務(wù)
docker restart mysql
八、設(shè)置 Docker 啟動時自動啟動 MySQL
docker update mysql --restart=always
九、再次重啟 MySQL
docker restart mysql
十、授權(quán)遠程訪問
1. 進入容器內(nèi)部
docker exec -it mysql /bin/bash
2. 登錄 MySQL
mysql -u root -p # 直接回車進入(使用空密碼)
3. 選擇數(shù)據(jù)庫
show databases; use mysql;
4. 查看用戶連接權(quán)限
select host, user from user;
root 用戶默認只有 localhost 連接權(quán)限。
5. 修改認證方式和權(quán)限
ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; update user set host = '%' where host = 'localhost' and user = 'root'; -- 刷新權(quán)限 flush privileges; -- 退出 MySQL exit
6. 退出容器
exit
完成部署
現(xiàn)在您的 MySQL 容器已成功部署,并支持遠程連接。
到此這篇關(guān)于Docker部署MySQL8.0從拉取鏡像到配置遠程訪問完整指南的文章就介紹到這了,更多相關(guān)Docker部署MySQL8.0內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql查詢樹形,id與pid關(guān)聯(lián)實踐
在MySQL中查詢基于id和pid關(guān)聯(lián)的樹形結(jié)構(gòu)數(shù)據(jù),推薦使用遞歸公用表表達式(WITH RECURSIVE)以實現(xiàn)高效遞歸查詢,適用于MySQL8.0及以上版本,對于舊版本MySQL,可使用自定義函數(shù)收集所有節(jié)點或父節(jié)點ID,或采用應(yīng)用層組裝策略,一次性加載數(shù)據(jù)并內(nèi)存組裝樹形結(jié)構(gòu)2026-06-06
Windows系統(tǒng)下MySQL 8.4.5壓縮包安裝詳細教程及常見問題
本文介紹MySQL8.4.5的性能優(yōu)化、高可用性增強及安全改進,詳細指導(dǎo)Windows安裝流程,對mysql8.4.5安裝教程感興趣的朋友一起看看吧2025-07-07
MySQL性能優(yōu)化之Open_Table配置參數(shù)的合理配置建議
這篇文章主要介紹了MySQL性能優(yōu)化之Open_Table配置參數(shù)的合理配置建議,在MySQL數(shù)據(jù)庫中,Opened_tables表示打開過的表數(shù)量,需要的朋友可以參考下2014-07-07
MySQL數(shù)據(jù)庫之字符集?character
這篇文章主要介紹了MySQL數(shù)據(jù)庫之字符集?character,文章基于MySQL的的相關(guān)資料展開詳細介紹,具有一定的參考價值需要的小伙伴可以參考一下2022-05-05
從MySQL5.7平滑升級到MySQL8.0數(shù)據(jù)庫的最佳實踐教程
這篇文章主要給大家介紹了關(guān)于從MySQL5.7平滑升級到MySQL8.0數(shù)據(jù)庫的最佳實踐,升級MySQL版本需要進行一系列操作,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2024-07-07
mysql中使用shell語句實現(xiàn)xtrabackup自動物理備份增量備份
這篇文章主要為大家介紹了mysql數(shù)據(jù)庫使用shell實現(xiàn)xtrabackup自動物理備份增量備份腳本,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07

