Docker 中安裝MYSQL/遠端連線 出錯
阿新 • • 發佈:2020-12-19
Docker 中連線/遠端連線MYSQL 出錯
mysql版本:5.7
docker版本:20.10.04
1. 進入MYSQL伺服器失敗
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
解決
mysql服務沒有啟動
# 容器內啟動
/etc/init.d/mysql start
2. 遠端連線Docker MYSQL 出錯
沒有給遠端連線授權
解決
2.1 進入MySQL容器,登陸MySQL
docker exec -it mysql /bin/bash
2.2 登入mysql
mysql -u root -p
2.3 選擇mysql自身的資料庫
use mysql;
2.4 檢視使用者資訊
select host,user,plugin,authentication_string from mysql.user;
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-SAdLw7O9-1608261753962)(Docker 中安裝MYSQL 出錯.assets/image-20201218103901560.png)]
如果host 下沒有 ‘%’ 則需要新增 代表允許遠端登入 localhost代表只允許本地登入
%允許來自任何ip的連線
localhost允許本機的連線
新增‘%’
update user set host = '%' where user = 'root';
2.5 授權遠端連線
# GRANT ALL ON *.* TO 'user'@'host';
GRANT ALL ON *.* TO 'root'@'%';
重新整理許可權
flush privileges
2.6 更改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更新root使用者密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
重新整理許可權
flush privileges;
2.7 若是連線的是騰訊雲/阿里雲
需要在雲伺服器的配置頁面的安全組裡開放資料庫連線埠(如3306之類)
借鑑:https://cloud.tencent.com/developer/article/1633614