docker安装mysql8
·
在宿主机上创建用于挂载的目录结构。这包括数据目录、配置文件目录、日志目录以及 MySQL 8.0 所需的 mysql-files目录
mkdir -p /home/tools/mysql8/{data,conf,logs,mysql-files}
创建一个自定义的 MySQL 配置文件 (my.cnf),以便更好地控制 MySQL 的行为。
vi /home/tools/mysql8/conf/my.cnf
将以下配置内容写入my.cnf文件。此配置设置了 UTF-8 字符集、时区以及其他常用参数
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
# 基础设置
user = mysql
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-name-resolve
default_authentication_plugin = mysql_native_password # 确保兼容旧版客户端[2,11](@ref)
# 连接和限制
max_connections = 1000
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 表名大小写 (Linux 环境下通常设为 1 以忽略大小写)[1,10](@ref)
lower_case_table_names = 1
max_allowed_packet = 100M
# 时区设置
default-time-zone = '+08:00'
使用 docker run命令启动 MySQL 8.0 容器,并将宿主机上的目录挂载到容器中对应的路径
docker run -d \
--name mysql8.0 \
-p 3308:3306 \
-v /home/tools/mysql8/data:/var/lib/mysql \
-v /home/tools/mysql8/conf:/etc/mysql/conf.d \
-v /home/tools/mysql8/logs:/var/log/mysql \
-v /home/tools/mysql8/mysql-files:/var/lib/mysql-files \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
--restart=unless-stopped \
mysql:8.0
附 my.cnf 配置项报错处理
报错
Error Code: 1153 - Got a packet bigger than 'max_allowed_packet' bytes
MySQL根据配置文件会限制Server接受的数据包大小。大的数据插入和更新会受 max_allowed_packet 参数限制,导致大数据写入或者更新失败。
max_allowed_packet的单位为字节
查询
show VARIABLES like '%max_allowed_packet%';|
show VARIABLES like 'max_allowed_packet';|
配置文件添加
max_allowed_packet = 100M
更多推荐

所有评论(0)