今天在使用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’@’%’.