docker MySQL
sh
[mysqld]
# 设置 3306 端口
port = 3306
# 用户
user=mysql
# 设置 mysql 的安装目录
basedir = /usr/local/mysql
# 设置 mysql 数据库的数据的存放目录
datadir = /usr/local/mysql/mysqldb
# secure_file_priv是MySQL中的系统变量,用于限制文件的读取和写入。
# 1.secure_file_priv = NULL ,限制文件的读取和写入。
# 2.secure_file_priv = 文件路径 ,限制文件的读取和写入只能在设定的文件夹中。
# 3.secure_file_priv= "", 对文件和读取和写入没有任何限制。
secure-file-priv = ''
#慢查询sql日志设置
slow_query_log=1
slow_query_log_file=/usr/local/mysql/log/show_query.log
#pid
pid-file=/usr/local/mysql/mysqld/mysqld.pid
#设置socke文件所在目录
socket=/usr/local/mysql/mysql.sock
# 允许访问的IP网段
bind-address=0.0.0.0
# 允许最大连接数
max_connections = 1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors = 100
# 服务端使用的字符集默认为 UTF8
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server=utf8mb4_general_ci
#是否对sql语句大小写敏感,0敏感 1不敏感
lower_case_table_names=1
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp=true
# 配置时区
default_time_zone = '+8:00'
# 创建新表时将使用的默认存储引擎
default-storage-engine = INNODB
# 默认使用 mysql_native_password 插件认证
default_authentication_plugin = mysql_native_password
# 是否对 sql 语句大小写敏感,1:不敏感
lower_case_table_names = 1
# MySQL 连接闲置超过一定时间后(单位:秒)将会被强行关闭
# MySQL 默认的 wait_timeout 值为 8 个小时, interactive_timeout 参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
# Metadata Lock最大时长(秒),一般用于控制 alter 操作的最大时长 sine mysql5.6
# 执行 DML 操作时除了增加 innodb 事务锁外还增加 Metadata Lock,其他 alter(DDL)session 将阻塞
lock_wait_timeout = 3600
# 内部内存临时表的最大值。
# 比如大数据量的 group by / order by 时可能用到临时表,
# 超过了这个值将写入磁盘,系统 IO 压力增大
tmp_table_size = 64M
max_heap_table_size = 64M
#检查未使用到索引的sql
log_queries_not_using_indexes=1
[mysql]
# 设置 mysql 客户端默认字符集
default-character-set = utf8mb4
[client]
# 设置 mysql 客户端连接服务端时默认使用的端口
port=3306
default-character-set = utf8mb4
sh
docker run \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=love \
-v /home/ubuntu/mysql/data:/usr/local/mysql/mysqldb:rw \
-v /usr/local/mysql/conf:/etc/mysql \
-v /home/ubuntu/data:/home/root/data \
--privileged=true \
--name mysql \
--restart=always \
-d mysql:8.0.24