今天在使用SQLyog連接阿里雲上的docker容器中的mysql出現了錯誤。經過網上查找(原文地址),解決了問題。
一、解決SQLyog出現的2003錯誤
1.配置雲服務器的安全規則,開放3306端口
配置規則之後再次連接,又報了個錯誤,查找發現原因是:因爲版本問題,mysql 密碼加密方法變了。
二、解決SQLyog出現2058錯誤(如圖)
1.通過docker exec
命令使得能在docker容器中使用命令
docker exec -it some-mysql bash
其中some-mysql可以是容器的id,或者name
2.使用命令mysql -uroot -p
登錄mysql
3.執行命令
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中password就是自己設置root的密碼
‘root’@‘localhost’:表示mysql賬號名,具體參見官方文檔
這裏直接使用
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
或者
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456';
來自mysql官方文檔 :An account name consisting only of a user name is equivalent to ‘user_name’@’%’. For example, ‘me’ is equivalent to ‘me’@’%’.