启动容器
1 | docker run -p 3306:3306 --name mysql-server \ |
此时可能从外部无法连接容器内的mysql
1 | alter user 'root'@'%' identified with mysql_native_password by 'password'; |
可能遇到如下问题或其他错误:
1 | Access denied for user 'root'@'localhost' (using password: YES) |
解决方法
1 | update user set authentication_string = 'root' where user = 'root' and host = '%'; |
使用sequel pro
进行连接时,报如下错误:
1 | MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found |
原因
mysql8之前的版本中加密规则是mysql_native_password
,而mysql8之后,加密规则是caching_sha2_password
,而数据库客户端无对应的驱动。
解决方法
登录到容器中,修改加密规则并更新用户密码,刷新权限。
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 |
此时再次尝试连接,成功。