前言
买了个新款的mbp,m1架构的,想安装一个mysql用于本地开发和学习,无奈查了下mysql还没有原生版本,想着docker已经发了预览版,就用docker创建一个镜像试试吧
安装docker
这里有个坑就是必须下预览版的
https://docs.docker.com/docker-for-mac/apple-m1/
下载安装,稍微等待docker左下角绿色,服务正常就可以了
拉取mysql镜像
需要注意的是mysql官方没有arm64的,要用mysql-server
docker pull mysql/mysql-server
然后我们新建一个mysql容器
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
docker exec -it your_container_name_or_id bash
mysql -u your_user -p #输入一下mysql的root密码
接着我们看一下root的host
SELECT host, user FROM mysql.user;
如果这样的就没问题了,不是就需要改一下权限
+------------+------------------+
| host | user |
+------------+------------------+
| % | root |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | mysql.sys |
| localhost | root |
| localhost | sonar |
+------------+------------------+
use mysql;
update user set host = '%' where user = 'root';
flush privileges;
这样设置后就可以以root用户连接mysql了