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

