Navicat远程连接Docker容器启动的MySQL报错Client does not support authentication protocol requested by server consider解决方法。

前言:

先使用正确的方式启动mysql容器:

docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=root -d mysql

在容器中连接mysql数据库:根据官方文档的方式连接

https://hub.docker.com/_/mysql/

对应MySQL的连接指令:

docker run -it --link mysql01:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

连接成功后进入mysql指令行:

正文:

1.查看mysql的版本

mysql> status

--------------

mysql Ver 8.0.12 for Linux on x86_64 (MySQL Community Server - GPL)

2. 进行远程连接授权;

mysql> grant all on *.* to 'root'@'%';

3.修改加密规则

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

4.更新root用户密码:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';(密码改为root)

5. 设置完成可以连接数据库

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐