记m1款mbp使用docker创建mysql

前言

买了个新款的mbp,m1架构的,想安装一个mysql用于本地开发和学习,无奈查了下mysql还没有原生版本,想着docker已经发了预览版,就用docker创建一个镜像试试吧

安装docker

这里有个坑就是必须下预览版的

https://docs.docker.com/docker-for-mac/apple-m1/

下载安装,稍微等待docker左下角绿色,服务正常就可以了

拉取mysql镜像

需要注意的是mysql官方没有arm64的,要用mysql-server

1
docker pull mysql/mysql-server

然后我们新建一个mysql容器

1
docker run -itd --name your_container_name -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql/mysql-server

修改权限

直接创建的mysql容器只允许localhost连,如果我们用mysql应用连接不了

会提示 Host ‘172.18.0.1’ is not allowed to connect to this MySQL server

1
2
docker exec -it your_container_name_or_id bash
mysql -u your_user -p #输入一下mysql的root密码

接着我们看一下root的host

1
SELECT host, user FROM mysql.user;

如果这样的就没问题了,不是就需要改一下权限

1
2
3
4
5
6
7
8
9
10
+------------+------------------+
host user
+------------+------------------+
% root
127.0.0.1 root
::1 root
localhost mysql.sys
localhost root
localhost sonar
+------------+------------------+
1
2
3
use mysql;
update user set host = '%' where user = 'root';
flush privileges;

这样设置后就可以以root用户连接mysql了