目录

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

docker 把mysql里面的数据dump 出来 docker mysql数据库_mysql

 2. 通过docker命令拉取镜像

docker pull mysql

docker 把mysql里面的数据dump 出来 docker mysql数据库_mysql_02

我的已经拉取过了,会显示已经是最新镜像,如果没有拉取过,会显示拉取的进度。

 3. 查看已经拉取的镜像

docker images

docker 把mysql里面的数据dump 出来 docker mysql数据库_MySQL_03

下载镜像时可能会遇到报错提示: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强制删除

docker 把mysql里面的数据dump 出来 docker mysql数据库_MySQL_04

 启动成功之后会先显示容器的id

5. 登录容器

docker exec -it 容器id /bin/bash

6. 登录MySQL

mysql -uroot -p123456

docker 把mysql里面的数据dump 出来 docker mysql数据库_数据库_05

docker 把mysql里面的数据dump 出来 docker mysql数据库_docker_06

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;

docker 把mysql里面的数据dump 出来 docker mysql数据库_数据库_07

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,点击实例与镜像,选择实例

docker 把mysql里面的数据dump 出来 docker mysql数据库_mysql_08

 (2)点击操作栏更多,选择网络和安全组,选择安全组配置

docker 把mysql里面的数据dump 出来 docker mysql数据库_mysql_09

(3)点击操作栏配置规则

docker 把mysql里面的数据dump 出来 docker mysql数据库_数据库_10

(4)点击手动添加,如下图所示将3306端口加入端口范围 

docker 把mysql里面的数据dump 出来 docker mysql数据库_mysql_11

14. 至此,可通过navicat连接你的数据库啦

docker 把mysql里面的数据dump 出来 docker mysql数据库_docker_12