MacBook M1芯片 docker 下部署MySQL

MacBook M1芯片 docker 下部署MySQL,第1张

MacBook M1芯片 docker 下部署MySQL

MacBook M1芯片 docker 下部署MySQL
  • 下载MySQL镜像
  • 启动镜像容器
    • 1. 首先查看下载后的镜像是否存在
    • 2. 启动mysql
  • 登录并修改默认密码
    • 1. 查看原密码
    • 2. 登录
    • 3. 修改密码为root:
  • 远程登录MySQL
    • 1. 首先,查看用户表信息
    • 2. 修改用户表的host

下载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连接试试,竟然成功了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5694046.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存