1.在docker hub 上查看要下载的mysql镜像名称

打开docker hub 网站:https://registry.hub.docker.com/
在上方搜索栏里输入mysql
image.png

找到要拉取的镜像版本,在tag下找到版本
image.png

2、拉取mysql镜像

  1. sudo docker pull mysql
  1. sudo docker pull mysql:5.7

image.png

3、镜像拉取完成后,用该镜像创建mysql实例,使用下面的命令来创建

  1. sudo docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

这里对上面的参数做下简单的介绍,如果不想了解这一块直接复制上面的命令执行即可:
配置端口映射:
-p 3306:3306 —name mysql
将容器的3306端口映射到主机的3306端口
配置mysql数据卷挂载
1.-v /mydata/mysql/log:/var/log/mysql(日志文件挂载)
将容器中的日志文件夹挂载到主机对应的/var/log/mysql文件夹中
2.-v /mydata/mysql/data:/var/lib/mysql(数据文件挂载)
将容器中的数据文件夹挂载到主机对应的/var/lib/mysql文件夹中
3.-v /mydata/mysql/conf:/etc/mysql(配置文件挂载)
将容器的配置文件夹挂载到主机对应的/etc/mysql文件夹中
注(这里所提的主机指的是当前的linux主机)
配置用户
-e MYSQL_ROOT_PASSWORD=root
设置初始化root用户的密码
指定镜像资源
-d mysql:5.7
-d:以后台方式运行实例
mysql:5.7:指定用这个镜像来创建运行实例

1、下面演示是用root用户来执行的命令,如果当前不是root用户,要在命令前加 sudo,以管理员方式来运行

image.png

2、创建成功后使用下面命令查看下创建好的mysql实例

  1. docker ps -a

image.png

4、用navicat测试下数据库是否启动成功:
用户名密码刚才创建docker时均设为了root

image.png
点击测试连接,显示测试成功,说明docker的mysql实例已经正常启动

image.png

5、远程授权用户

docker exec -it mysql /bin/bash 进入mysql容器内

mysql -uroot -proot 输入密码,进入mysql中

use mysql 进入mysql数据库

grant all privileges on . to ‘root’@’%’ identified by ‘123456’; 新建一个具有远程访问权限的用户,并刷新加载权限

flush privileges; 并刷新加载权限

ctrl+z 退出数据库

ctrl+d 退出数据库容器

docker restart mysql 重启数据库

6、创建数据库并设置UTF-8编码集

CREATE DATABASE 数据库库名字 CHARACTER SET utf8 COLLATE utf8_general_ci;

7、解决Navicat无法连接数据库

https://blog.csdn.net/qq_43357627/article/details/107403151