解決:連接不上 docker中的mysql


解決:連接不上 docker中的mysql

 

在本地電腦上,遠程連接阿里雲服務器上的docker中的mysql,明明賬號,密碼都沒有錯,但一直出現以下錯誤,拒絕聯系,其實這是由於權限不足的原因。

首先問題

 

 

 

目前問題已解決

1、查看我們想要連接的mysql是否啟動

 #查看在運行的容器
 docker ps -s

 

 

2、進入容器

 # docker exec -it 容器號或名 /bin/bash
 
 docker exec -it mysql /bin/bash

 

 

 

 

 

 

3、進入mysql

 mysql -uroot -p
 
 #輸入密碼(跟之前在windows上運行mysql是一樣的)

 

4、查看MySQL的信息

 select host,user,plugin,authentication_string from mysql.user;

 

 

重點來了:host為 % 表示不限制ip localhost表示本機使用 (作者的問題就是當時的root對應的host不為%,而是localhost)

plugin非mysql_native_password 則需要修改密碼

5、修改密碼和host

 alter user 'root'@'%' identified with mysql_native_password by '123456';

這里注意自己要修改對應的用戶名和密碼

 

6、新建用戶(也是一種解決辦法)

 USE mysql;
 CREATE USER 'user'@'%' IDENTIFIED BY '123456';
 GRANT ALL ON *.* TO 'user'@'%';
 FLUSH PRIVILEGES;
 

 

當然,也要注意一下是不是防火牆的問題

若無法連通宿主機地址:端口,可能是因為防火牆沒有關閉,可以用以下命令關閉防火牆

 [root@localtion]$ sudo systemctl stop firewalld     #關閉防火牆
 [root@localtion]$ sudo systemctl disable firewalld   #重啟后也不開啟防火牆

若必需打開防火牆,則使用防火牆單獨打開3306端口即可

 [root@localtion]$ : sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp
 [root@localtion]$ : sudo ffirewall-cmd --reload       永久開啟3306端口
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM