Mac连接Docker 的Mysql数据库

因为不想单独安装Mysql数据库,而Docker容器化技术又有先天优势,所以采用了Docker搭建Mysql数据库。具体操作如下:

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server

运行Mysql并指定密码,其中Mysql-server可指定相关版本。

然后采用命令行登陆mysql数据库:

docker exec -it mysql/mysql-server bash

登陆mysql

mysql -uroot -p

然后采用navicat登陆Mysql测试

首先报错

1130, "Host 'xxxx' is not allowed to connect to this MySQL server"

通过如下方式解决:

首先查询select host,user,plugin,authentication_string from mysql.user;

发现root用户对应的host为localhost。为了后续外部访问,首先执行下面命令:

use mysql;

update user set host='%' where user='root';

然后在navicat登陆,发现如下错误:

 Authentication plugin 'caching_sha2_password' cannot be loaded。登陆失败。

很多用户在使用Navicat Premium 12连接MySQL数据库时会出现Authentication plugin 'caching_sha2_password' cannot be loaded的错误。

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 

ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;   #修改加密规则 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';   #更新一下用户的密码 
ALTER USER 'root'@'%' IDENTIFIED BY '123456' 
FLUSH PRIVILEGES;

 然后navicat就可以正常连接mysql了。

 

posted @ 2021-07-05 22:03  误入程序园  阅读(684)  评论(0)    收藏  举报