目录
1. 使用docker 命令查找MySQL镜像
2. 通过docker命令拉取镜像
3. 查看已经拉取的镜像
4. 运行容器
5. 登录容器
6. 登录MySQL
7. 根据MySQL版本进行设置
8. docker中设置mysql数据库开机自启:
9. 查看MySQL用户表权限
10. 修改密码
11. 退出容器
12. 查看防火墙是否关闭
13.查看阿里云服务器是否开放3306端口
14. 至此,可通过navicat连接你的数据库啦
1. 使用docker 命令查找MySQL镜像
docker search mysql
2. 通过docker命令拉取镜像
docker pull mysql
我的已经拉取过了,会显示已经是最新镜像,如果没有拉取过,会显示拉取的进度。
3. 查看已经拉取的镜像
docker images
下载镜像时可能会遇到报错提示:unknown method AddResource: not implemented
原因是没有重启containerd服务,重启containerd.service之后再启动docker就没有问题了
重启命令
sudo systemctl restart containerd.service
sudo systemctl restart docker
4. 运行容器
docker run -itd --name mysql_5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --lower_case_table_names=1 --max_connections=10000
备注:
lower_case_table_names=1:忽略大小写;
max_connections:最大连接数量;
–name:为容器指定一个名称,此处命名为mysql_5.7
-e:配置信息,此处配置mysql的root用户的登陆密码
-p:端口映射,此处映射 主机3306端口 到 容器的3306端口
-d:后台运行容器,并返回容器ID;
如果运行中报错了,但是已经创建了容器,可通过删除命令删除
docker rmi -f [id/name] 删除镜像 -f强制删除
docker rmi -f $(docker images -qa) 删除所有镜像 -f强制删除
启动成功之后会先显示容器的id
5. 登录容器
docker exec -it 容器id /bin/bash
6. 登录MySQL
mysql -uroot -p123456
7. 根据MySQL版本进行设置
(1)MySQL5.7版本的设置远程连接,使用命令:
use mysql;
grant all privileges on *.* to ‘root’@’%’ identified by ‘123456’ with option;#设置远程连接
Flush privileges;#刷新权限
(2)MySQL8.0以上版本设置远程连接,使用命令:
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';#设置远程连接
Flush privileges;#刷新权限
8. docker中设置mysql数据库开机自启:
docker update mysql8.0 --restart=always 容器id
9. 查看MySQL用户表权限
select host,user,plugin,authentication_string from mysql.user;
host为%表示不限制IP local host表示本机使用
plugin 不是 mysql_native_password则需要修改密码
10. 修改密码
alter user 'root'@'%' identified with mysql_native_password by '123456';
11. 退出容器
exit 关闭容器并退出
ctrl+p+q 退出容器不关闭
12. 查看防火墙是否关闭
systemctl stop firewalld #关闭防火墙
sudo systemctl disable firewalld #重启后也不开启防火墙
13.查看阿里云服务器是否开放3306端口
(1)登录阿里云,进入工作台》云服务器ECS,点击实例与镜像,选择实例
(2)点击操作栏更多,选择网络和安全组,选择安全组配置
(3)点击操作栏配置规则
(4)点击手动添加,如下图所示将3306端口加入端口范围