- 下载MySQL镜像
- 启动镜像容器
- 1. 首先查看下载后的镜像是否存在
- 2. 启动mysql
- 登录并修改默认密码
- 1. 查看原密码
- 2. 登录
- 3. 修改密码为root:
- 远程登录MySQL
- 1. 首先,查看用户表信息
- 2. 修改用户表的host
若要下载最新版,在命令行中:
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 509MB2. 启动mysql
方式1,命令启动:
docker run --name=mysql1 -d mysql/mysql-server
方式2,窗口启动
启动后可以在这里查看,绿色图标的表示运行中
也可以通过命令看正在运行的容器:
docker ps登录并修改默认密码 1. 查看原密码
docker logs mysql 或 docker logs mysql | grep GENERATED
箭头处就是自动生成的默认密码,我们需要用这个密码登录并修改密码。
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连接试试,竟然成功了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)