2025-09-28 16:50:31 +08:00

67 lines
4.8 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[mysqld]
# 基础配置
port = 3306 # 端口号默认3306如需修改需同步防火墙
socket = /var/run/mysqld/mysqld.sock # 套接字文件路径Linux
pid-file = /var/run/mysqld/mysqld.pid # PID文件路径
datadir = /var/lib/mysql # 数据存储目录(需确保权限正确)
default-storage-engine = InnoDB # 默认存储引擎InnoDB支持事务、外键
character-set-server = utf8mb4 # 服务器默认字符集utf8mb4支持emoji
collation-server = utf8mb4_general_ci # 服务器默认排序规则
lower_case_table_names = 1 # 表名不区分大小写0:区分1:不区分仅Linux有效
skip-name-resolve # 禁用DNS解析加快连接速度避免连接超时
# 连接与并发配置
max_connections = 500 # 最大连接数根据服务器内存调整8G内存建议500-1000
max_user_connections = 400 # 单个用户最大连接数(避免某用户耗尽连接)
wait_timeout = 300 # 空闲连接超时时间默认8小时建议5-10分钟
interactive_timeout = 300 # 交互式连接超时时间与wait_timeout保持一致
back_log = 100 # 连接队列长度当连接数达max_connections时排队等待的连接数
# InnoDB 引擎优化(核心性能配置)
innodb_buffer_pool_size = 4G # InnoDB缓冲池大小建议设为服务器内存的50%-70%如8G内存设4G
innodb_buffer_pool_instances = 4 # 缓冲池实例数与CPU核心数匹配16G以上内存建议4-8个
innodb_flush_log_at_trx_commit = 1 # 事务提交时日志写入策略1:实时写入最安全0:每秒写入,性能高但可能丢数据)
innodb_log_buffer_size = 16M # 日志缓冲区大小大事务场景可增大至32M
innodb_log_file_size = 1G # 单个日志文件大小建议1G-2G太大影响恢复速度太小影响写入性能
innodb_log_files_in_group = 2 # 日志文件组数量默认2个通常无需修改
innodb_flush_method = O_DIRECT # 数据刷新方式Linux推荐O_DIRECT避免操作系统缓存二次缓存
innodb_read_io_threads = 8 # 读IO线程数根据CPU核心数调整建议8-16
innodb_write_io_threads = 8 # 写IO线程数同上
innodb_file_per_table = 1 # 每个表使用独立表空间(便于管理和回收空间)
innodb_max_dirty_pages_pct = 75 # 脏页占比上限达到后触发刷新默认75%
# 查询缓存MySQL 8.0已移除查询缓存,无需配置)
# 日志配置(关键:便于问题排查和性能优化)
slow_query_log = 1 # 开启慢查询日志1:开启0:关闭)
slow_query_log_file = /var/log/mysql/slow.log # 慢查询日志路径需确保mysql用户有写入权限
long_query_time = 2 # 慢查询阈值(秒,超过此时间的查询记录到日志)
log_queries_not_using_indexes = 1 # 记录未使用索引的查询便于优化无索引SQL
log_error = /var/log/mysql/error.log # 错误日志路径
general_log = 0 # 关闭通用查询日志1:开启会记录所有SQL性能影响大
# general_log_file = /var/log/mysql/general.log
# 其他优化
table_open_cache = 2048 # 表缓存数量缓存打开的表建议2048-4096
table_definition_cache = 1024 # 表定义缓存建议1024-2048
max_allowed_packet = 64M # 最大数据包大小(避免大字段插入/更新失败建议32M-128M
sort_buffer_size = 4M # 排序缓冲区大小(每个连接独立分配,不宜过大)
read_buffer_size = 2M # 顺序读缓冲区大小
read_rnd_buffer_size = 8M # 随机读缓冲区大小
join_buffer_size = 4M # 连接缓冲区大小(影响多表关联性能)
[mysqld_safe]
log-error = /var/log/mysql/error.log # 与mysqld部分的错误日志路径保持一致
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
[mysql]
default-character-set = utf8mb4 # 客户端默认字符集
prompt = "\u@\h [\d] > " # 客户端命令提示符(显示用户名@主机名 [数据库名]
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock # 与mysqld部分的socket路径一致
default-character-set = utf8mb4 # 客户端连接默认字符集