真正解決Docker運(yùn)行MySQL后本地?zé)o法訪問問題的方法
適用系MySQL8.0.x/5.6.x
一、跟著教程安裝
1.1 拉取 MySQL 鏡像
docker pull mysql:latest
1.2 查看本地鏡像
使用以下命令來查看是否已安裝了 mysql:
docker images
1.3 運(yùn)行容器
安裝完成后,我們可以使用以下命令來運(yùn)行 mysql 容器:
docker run -itd --name mysql8 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
參數(shù)說明:
-p 3308:3306 :映射容器服務(wù)的 3306 端口到宿主機(jī)的 3308 端口,外部主機(jī)可以直接通過 宿主機(jī)ip:3308 訪問到 MySQL 的服務(wù)。
MYSQL_ROOT_PASSWORD=123456:設(shè)置 MySQL 服務(wù) root 用戶的密碼。
1.4 安裝成功
通過 docker ps 命令查看是否安裝成功:
![]()
1.5 附加設(shè)置
#進(jìn)入容器 docker exec -it [CONTAINER ID] bash #登錄mysql mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY '密碼'; #添加遠(yuǎn)程登錄用戶 CREATE USER '用戶名'@'%' IDENTIFIED WITH mysql_native_password BY '密碼'; GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'%';
二、報錯
2.1 嘗試在宿主機(jī)本地連接Docker的MySQL
mysql -h localhost -u root -P 3308 -p #報錯 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
mysql -h 127.0.0.1 -u root -P 3308 -p #報錯 error: 2013, Lost connection to MySQL server at 'reading initial communication packet', system error: 0
要解決上面兩個報錯,必須要明白docker與宿主通訊的方式。
解決方法:
本地pc->linux->docker,它們的訪問路徑大概是這樣。
首先要獲得linux的ip,并確認(rèn)本地pc能ping通linux機(jī)器。如果無法ping通,則無法訪問。
我的linux是用vmware虛擬出來的ubuntu,原來虛擬機(jī)的上網(wǎng)方式是nat,這時虛擬機(jī)能ping通pc的ip,但pc無法ping通虛擬機(jī)。暫時找不到解決方法。
將虛擬機(jī)的上網(wǎng)方式改為橋接,ip自動獲取,一連接就成功。
總結(jié)
到此這篇關(guān)于真正解決Docker運(yùn)行MySQL后本地?zé)o法訪問問題的方法的文章就介紹到這了,更多相關(guān)Docker運(yùn)行MySQL本地?zé)o法訪問內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從入門到精通MySQL 數(shù)據(jù)庫索引(實戰(zhàn)案例)
索引是數(shù)據(jù)庫的目錄,提升查詢速度,主要類型包括BTree、Hash、全文、空間索引,需根據(jù)場景選擇,建議用于高頻查詢、關(guān)聯(lián)字段、排序等,避免重復(fù)率高或頻繁更新字段,本文給大家介紹MySQL 數(shù)據(jù)庫索引實戰(zhàn)案例,感興趣的朋友一起看看吧2025-06-06
MySQL數(shù)據(jù)導(dǎo)入導(dǎo)出的三種辦法總結(jié)
當(dāng)我們需要切換數(shù)據(jù)庫或備份數(shù)據(jù)時,導(dǎo)入和導(dǎo)出數(shù)據(jù)庫是一個常見的操作,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)導(dǎo)入導(dǎo)出的三種辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
Windows下mysql 5.7 設(shè)置區(qū)分大小寫(敏感),設(shè)置默認(rèn)編碼 utf8mb4
最近需要將Windows下的mysql 5.7設(shè)置區(qū)分大小寫(敏感),設(shè)置默認(rèn)編碼 utf8mb4,需要的朋友可以參考下2022-10-10

