在使用 M1 芯片的 Mac 上使用 docker 拉取 mysql 5.7 的镜像时会出现如下提示
docker pull mysql:5.7
5.7: Pulling from library/mysql
no matching manifest for linux/arm64/v8 in the manifest list entries
使用 ibex/debian-mysql-server-5.7 镜像
通过符合系统架构的镜像安装
docker run --name mysql -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=123456 ibex/debian-mysql-server-5.7
使用 root 通过 localhost 连接时提示
通过宿主机连接会提示不允许连接,此时宿主机和 mysql 所在容器不在同一个环境下
Host '172.17.0.1' is not allowed to connect to this MySQL server
解决方案
通过指定 MYSQL_ROOT_HOST 允许所有IP连接
docker run --name mysql -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROOT_HOST=% ibex/debian-mysql-server-5.7
通过修改 mysql user 表允许所有IP连接
docker exec -it mysql bash
mysql -uroot -p
// 输入 root 密码后回车
use mysql;
select host from user where user='root';
update user set host = '%' where user ='root';
flush privileges;