mysql容器化部署:
数据持久化(方便数据保存及迁移):
需要持久化两个目录:
 创建/mysql
(1)mysql配置文件:
 /mysql/mysql-cnf/my.cnf
 vim my.cnf
 '''
 [mysqld]
 pid-file        = /var/run/mysqld/mysqld.pid
 socket          = /var/run/mysqld/mysqld.sock
 #容器内数据存储路径
 datadir         = /var/lib/mysql
 #log-error      = /var/log/mysql/error.log
 # By default we only accept connections from localhost
 #bind-address   = 127.0.0.1
 # Disabling symbolic-links is recommended to prevent assorted security risks
 symbolic-links=0
 max_connections=1000
 #sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
 #mysql57需要设置该参数
 #show_compatibility_56=1
 #mysql8中需要添加
 secure_file_priv=/var/lib/mysql
 '''
(2)数据存储目录:
 #如果需要迁移将老数据拷贝到该目录下
 /mysql/mysql-data
 注意:在启动mysql容器前删除两个文件:ib_logfile0和ib_logfile1
(3)启动容器
 #此时版本为Mysql8
 #拉取镜像
 docker pull mysql
 #启动容器同时挂载持久化目录
 docker run -d -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /mysql/mysql-data:/var/lib/mysql -v /mysql/mysql-cnf/my.cnf:/etc/mysql/my.cnf --name=mysql --restart=always 3218b38490ce
(4)查看是否启动成功:
 docker ps|grep mysql
(5)mysql8无法连接navicat解决方法:
 ①进入容器内部:
 docker exec -it 容器ID /bin/bash
 ②登录mysql:
 mysql -u root -p
 ③输入密码:
 root密码为MYSQL_ROOT_PASSWORD=123456
 ④mysql用户登录密码加密规则还原成mysql_native_password:
 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
 ⑤尝试使用navicat连接mysql
注意:注意给配置文件赋权限