Docker 部署 MySQL

创建宿主机目录

mkdir -p /opt/docker/mysql
cd /opt/docker/mysql

创建数据目录,用于持久化数据库文件

创建配置目录,用于存放自定义的 my.cnf 文件

mkdir data
mkdir conf
mkdir logs

启动命令

docker run -d \
  --name mysql-server \
  -p 30306:30306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  --restart=unless-stopped \
  -v /opt/docker/mysql/data:/var/lib/mysql \
  -v /opt/docker/mysql/conf:/etc/mysql/conf.d \
  -v /opt/docker/mysql/logs:/var/log/mysql \
  docker.xuanyuan.run/library/mysql:8.0.39

my.cnf文件内容

[mysqld]
# 设置3306端口
port=30306
# 设置mysql的安装目录
# basedir=D:\Program Files\MySQL\MySQL 8
# 设置mysql数据库的数据的存放目录,在安装mysql-5.7.30-winx64.zip版本的时候,此配置不可添加,否则mysql将无法启动。
# datadir=D:\Program Files\MySQL\MySQL 8\data
# 允许最大连接数
max_connections=2000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 关闭ssl
skip_ssl
# 配置时区
default-time_zone='+8:00'
# 解决MySQL错误-this is incompatible with sql_mode=only_full_group_by
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=30306
default-character-set=utf8mb4

[mysqld]
explicit_defaults_for_timestamp=true
posted @ 2025-08-22 21:22  0611163  阅读(19)  评论(0)    收藏  举报