docker 配置mysql并用navicat测试连接

在M1芯片的Mac上尝试通过Docker拉取MySQL镜像时遇到不匹配架构的问题,因为Docker Hub缺少适用于arm64的MySQL镜像。解决方法是使用特定的mysql/mysql-server镜像,并在启动容器后进行权限设置,包括创建用户、授权、修改验证方式以及刷新权限。在遇到Access denied错误时,需检查验证方式并将其改为mysql_native_password。
摘要由CSDN通过智能技术生成

m1 直接docker pull mysql 报:

MacBook-Pro ~ % docker pull mysql

Using default tag: latest

latest: Pulling from library/mysql

no matching manifest for linux/arm64/v8 in the manifest list entries

Docker Hub上没有适用于arm64架构的mysql镜像。

M1芯片是arm64架构,也称作aarch64架构,只能运行arm64/aarch64架构的程序。

使用:docker pull mysql/mysql-server:latest

创建并启动MySQL服务容器

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

这时使用宿主机连接没有授权访问,需要进入mysql修改mysql访问权限。

docker exec -it mysql bash

bash-4.2# mysql -u root -p

123456
授权

mysql>CREATE USER ‘root’@’%’ IDENTIFIED BY ‘root’;

mysql>GRANT ALL ON . TO ‘root’@’%’;
刷新权限

mysql> flush privileges;
修改root用户密码

mysql> ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
刷新权限

mysql> flush privileges;

出现:报错Access denied for user ‘root’@‘172.17.0.1’ (using password: NO)

原因:对于熟悉mysql的人,这个错误应该很容易定位。从MySQL8.0 开始,默认的验证方式是 caching_sha2_password(参见 MySQL 8.0.4 : New Default Authentication Plugin : caching_sha2_password)。

解决办法:将验证方式修改为“mysql_native_password”

USE mysql;

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘’;

FLUSH PRIVILEGES;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值