docker部署mysql后無法連接的解決方式
1、創(chuàng)建實例命令
docker run -id --name=c_mysql -p 3306:3306 -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.37
2、查看啟動的實例 docker ps
3、這里映射的是宿主機的3306端口,我已經把端口開放了
4、在宿主機進行連接
#這個報錯像是mysql不存在,查看mysql是否啟動
#mysql已啟動,端口也沒有被占用
5、已經在容器里面測試了,mysql可以正常連接;在試試將root用戶開放可以任何主機訪問
5.1、進入容器,并連接mysql
docker exec -it c_mysql bash mysql -uroot -p123456
5.2、將root用戶開放所有主機可以訪問
mysql> grant all privileges on . to root@‘%'; #授權 mysql> flush privileges; #刷新權限表
6、在宿主進再次進行連接測試
#還是不行!??!
7、去百度了一下,覺得是宿主機的路由沒有開啟,來試試看
#一圈回來,發(fā)現問題出在宿主機,因為如果要使用mysql命令,就是必須要/usr/bin/目錄下有這個命令。但是我是docker安裝mysql所以,宿主機不能使用mysql連接docker的數據庫,使用遠程工具navicat連接時報的錯,應該是root用戶沒有開啟,任何主機可以訪問的權限。由于上面已經開了,我現在測試navicat是可以遠程連接的
8、上面說到了一個宿主機路由的問題,我們路由沒開的話就會導致宿主機于容器實例網絡隔絕,所以是要打開的。
8.1、查看路由是否打開
sysctl net.ipv4.ip_forward
#返回值為1代表路由已開啟,為0就是未開啟
8.2、開啟路由
echo “net.ipv4.ip_forward = 1” >>/etc/sysctl.conf #將命令寫入到/etc/sysctl.conf文件中 sysctl -p #加載內核 sysctl net.ipv4.ip_forward #再次查看路由是否開啟
補充:Docker里的Mysql無法連接,連接一段時間超時。ERROR 2013 (HY000): Lost connection to MySQL server at
嘗試使用命令行連接
mysql -h xxx.xxx.xxx.xxx -P 3306 -u root -p 123456
如果報錯:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not system error)"
請重啟docker服務
然后再次啟動容器
如果不是這種報錯,請檢查Mysql版本,如果為8.0及以上版本;需要注意,該版本密碼認證機制已經升級,有些客戶端未能兼容,請使用新的認證方式修改Mysql密碼
還有就是,所登錄的用戶是否允許任意主機連接
use mysql; select user,host from user;
僅允許本地連接:root@localhost
允許任意連接:root@%
如果發(fā)現為:root@localhost
不要直接修改此表
可以新建一個用戶,并賦予權限
#Mysql8.0: #添加遠程登錄用戶 CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'passwd!'; #賦予權限 GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
總結
到此這篇關于docker部署mysql后無法連接解決的文章就介紹到這了,更多相關docker部署mysql無法連接內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
通過Docker安裝啟動DB2在Spring?Boot整合DB2的方法
DB2是IBM的一款優(yōu)秀的關系型數據庫,這篇文章主要介紹了通過Docker啟動DB2,并在Spring?Boot整合DB2,需要的朋友可以參考下2023-01-01docker-compose集成Jenkins部署,打包,發(fā)布方式
在Docker環(huán)境中安裝配置Jenkins,需掛載JDK、Maven等至容器指定路徑,設置國內鏡像提升下載速度,并添加插件與憑據完成環(huán)境配置2024-10-10如何將gitbub下載的docker-compose項目運行在docker
這篇文章主要介紹了如何將gitbub下載的docker-compose項目運行在docker問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05完美解決Windows10下無法對docker容器進行端口訪問的操作
這篇文章主要介紹了完美解決Windows10下無法對docker容器進行端口訪問的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11使用docker環(huán)境變量動態(tài)配置nginx的問題小結
這篇文章主要介紹了使用docker環(huán)境變量動態(tài)配置nginx,整個方案,采用的是通過docker run -e xxxx=xxx先往容器注入環(huán)境變量,然后進一步通過envsubst指令將環(huán)境變量寫入到具體的文件當中,實現動態(tài)配置文件內容,需要的朋友可以參考下2022-06-06