首先建立好数据卷映射到宿主机的路径:
[root@microservice opt]# mkdir -p /opt/docker/mysql
[root@microservice opt]# mkdir -p /opt/docker/mysql/conf.d
[root@microservice opt]# mkdir -p /opt/docker/mysql/data
创建my.cnf配置文件
[root@microservice opt]# touch /opt/docker/mysql/my.cnf
my.cnf添加如下内容:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
然后一条命令搞定mysql:
[root@microservice opt]# docker run --restart=always --privileged=true -d -v /opt/docker/mysql/data/:/var/lib/mysql -v /opt/docker/mysql/conf.d:/etc/mysql/conf.d -v /opt/docker/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysql --privileged=true --restart=always -e MYSQL_ROOT_PASSWORD=neIIqlwGsjsfsA6uxNqD -e "TZ=Asia/Shanghai" -d mysql:5.7 --lower_case_table_names=1
当观察到STATUS为UP状态时,基本上mysql就已经可以使用了:
[root@microservice opt]# docker ps
设置mysql允许远程访问:
[root@microservice]# docker exec -it mysql bash root@7028670f0c2c:/# mysql -uroot -proot mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; mysql> FLUSH PRIVILEGES;
云服务器开通3306端口后重启就可以使用了!!!