MacBook M1芯片 docker 下部署MySQL
Posted 阿拉的梦想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacBook M1芯片 docker 下部署MySQL相关的知识,希望对你有一定的参考价值。
MacBook M1芯片 docker 下部署mysql
下载MySQL镜像
若要下载最新版,在命令行中:
docker pull mysql
但是由于M1芯片的MacBook对此版本不适配,所以会报错:
$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
latest: Pulling from library/mysql
no matching manifest for linux/arm64/v8 in the manifest list entries
这时,我们打开docker的镜像中心:
https://hub.docker.com
然后镜像搜索框输入MySQL,筛选项选ARM 64 :
然后拉取此镜像即可:
docker pull mysql/mysql-server
启动镜像容器
1. 首先查看下载后的镜像是否存在
# ccl @ bogon in ~ [14:28:34]
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 93f2223d3607 4 weeks ago 107MB
docker/getting-started latest 720f449e5af2 4 weeks ago 27.2MB
mysql/mysql-server latest 087c6f86492c 7 weeks ago 509MB
2. 启动mysql
方式1,命令启动:
docker run --name=mysql1 -d mysql/mysql-server
方式2,窗口启动
启动后可以在这里查看,绿色图标的表示运行中
也可以通过命令看正在运行的容器:
docker ps
登录并修改默认密码
1. 查看原密码
docker logs mysql
或
docker logs mysql | grep GENERATED
箭头处就是自动生成的默认密码,我们需要用这个密码登录并修改密码。
2. 登录
docker exec -it mysql mysql -uroot -p
输入上面的密码即可
3. 修改密码为root:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'
这样就可以用新密码登录了。
远程登录MySQL
经过上面的设置,MySQL是无法从远程登录的,就是说从桌面的Navicat无法连接到docker里的MySQL,会报拒接连接。
1. 首先,查看用户表信息
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| healthchecker | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
发现所有用户只能在localhost上使用
2. 修改用户表的host
经过百度查询,大都说要这样授权,但我这里还是报错了:
mysql> GRANT ALL ON *.* TO 'root'@'%';
ERROR 1410 (42000): You are not allowed to create a user with GRANT
经查询,应当先改用户表:
mysql> update user set host = '%' where user = 'root' and host='localhost';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
查看用户表:
发现已经修改成功
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| healthchecker | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
继续授权:
mysql> GRANT ALL ON *.* TO 'root'@'%';
ERROR 1410 (42000): You are not allowed to create a user with GRANT
还是报错。。。
不管了,先用Navicat连接试试,竟然成功了。
以上是关于MacBook M1芯片 docker 下部署MySQL的主要内容,如果未能解决你的问题,请参考以下文章
MAC M1下 docker部署Mysql和Navicate连接docker数据库
MAC M1下 docker部署Mysql和Navicate连接docker数据库