1、拉取mysql8的镜像:
[root@i-zgn6som8 ~]# docker pull mysql:8.0
2、创建配置和数据文件夹并修改权限:
mkdir -p /data/mysql8/conf mkdir -p /data/mysql8/data chmod -R 755 /data/mysql8/
3、配置一个自定义的配置文件my.cnf:
vim /data/mysql8/conf/my.cnf
文件内容如下:
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql character_set_server = utf8mb4 collation_server = utf8mb4_bin secure-file-priv= NULL symbolic-links=0 transaction_isolation=READ-COMMITTED innodb_log_file_size=256M max_allowed_packet=34M max_connections=1000 max_user_connections=500 max_connect_errors=100 default-time_zone='+8:00'
4、通过以下命令,直接运行容器:
docker run -d -p 23306:3306 \ -v /data/mysql8/conf/:/etc/mysql/conf.d \ -v /data/mysql8/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD='Jgq20230724!@#' \ --restart=always \ --name=mysql8 \ mysql:8.0
5、此时就可以直接连接了:
补充一:之所以挂载到conf.d下面,是因为新版的mysql建议自定义的配置,挂载到 /etc/mysql/conf.d 目录下,以 .cnf 结尾即可:
[root@i-jiguiquan ~]# docker exec -it mysql8 /bin/bash root@decdf9fa3b4d:/# cat /etc/mysql/my.cnf [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL # Custom config should go here !includedir /etc/mysql/conf.d/