1. 程式人生 > 其它 >解決:連線不上 docker中的mysql

解決:連線不上 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埠