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了。

浙公网安备 33010602011771号