Docker部署MySQL

获取镜像

docker pull mysql

启动镜像

$ docker run 
--name 自定义容器名 
-d -p 3306:3306
-e MYSQL_ROOT_PASSWORD = "自定义Root用户密码"
-e MYSQL_USER="自定义用户名"
-e MYSQL_PASSWORD="自定义用户密码"
mysql

自定义本地配置文件和本地存储数据

$ docker run 
--name mysql 
-v /本地配置文件目录:/etc/mysql/conf.d 
-v /本地数据存储目录:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD = "123"
-d mysql:tag

如果本地相应的目录文件,会自动创建

解决mysql8.0远程连接文件

  1. 通过交互方式进入容器:
docker exec -it mysql bash
  1. 进入数据库
  2. 进行授权远程连接(mysql 8.0跟之前的授权方式不同)
GRANT ALL ON *.* TO 'root'@'%';

flush privileges;--刷新权限
  1. 更改加密规则(Navicat只支持旧版本的加密,需要更改mysql的加密规则)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  1. 更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

flush privileges;