Mac M1 使用 Docker 安装 MySql v5.7 并使用 localhost 连接

6,266 阅读1分钟

在使用 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;