my.cnf 配置优化

collation-server=utf8mb4_unicode_ci
character-set-server=utf8mb4 # 字符集


datadir=/var/lib/mysql  # MySQL安装位置
socket=/var/lib/mysql/mysql.sock  # MySQL通讯协议文件位置,本地连接使用

# 是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启。
# 禁用symbolic-links选项、服务配置,禁用符号链接以防止各种安全风险
symbolic-links=0 
pid-file=/var/run/mysqld/mysqld.pid # MySQL进程位置

# 网络设置  
max_connections=200  # 最大连接数,根据应用需求调整  
max_connect_errors=100000
table_open_cache=2000  # 打开的表缓存数量  
table_definition_cache=1500  # 表定义缓存数量  9How
thread_cache_size=16  # 线程缓存大小
# 事务隔离级别
# 由低到高分别为
# read-uncommitted(读未提交)
# read-committed(读提交) 
# repeatable read(重复读) 
# Serializable(序列化) 
transaction_isolation=READ-COMMITTED 
lower_case_table_names=1 # 大小写敏感关闭
default_time_zone=+8:00 # 时区
open_files_limit=65535 # 最大文件描述符数量
log_timestamps=system # 解决日志时区不匹配问题 (5.7 版本独有)
wait_timeout=900  # 连接时长控制
interactive_timeout=900 # 连接时长控制


# 缓存和缓冲设置  
innodb_buffer_pool_size=4G  # InnoDB缓冲池大小,建议设置为物理内存的50%-75%  
innodb_buffer_pool_instances=4  # 缓冲池实例数量,建议设置为缓冲池大小的1/1G,最多8个  
innodb_stats_on_metadata=OFF  # 关闭在元数据请求时更新统计信息,减少I/O  
innodb_flush_method=O_DIRECT  # 使用直接I/O,减少文件系统缓存 
innodb_io_capacity=2000 # InnoDB后台任务(如刷新脏页和合并插入缓冲区)每秒可以进行的I/O操作数量
innodb_log_files_in_group=4 # InnoDB重做日志组中日志文件的数量
# ↓↓↓↓ 该配置只能在初始化实例前配置,如果启动后报错需要改成0
innodb_undo_tablespaces=4 # InnoDB使用的撤销表空间文件的数量,存储撤销日志,支持事务回滚
innodb_undo_log_truncate=1 # 启用撤销日志的截断
innodb_max_undo_log_size=1G # 单个撤销表空间文件的最大大小
innodb_flush_neighbors=0 # 控制InnoDB是否应该尝试将相邻的脏页一起刷新到磁盘,关闭
innodb_print_all_deadlocks=1 # 打印死锁信息到错误日志
innodb_online_alter_log_max_size=128M # 设置在线DDL操作生成的重做日志的最大大小
innodb_lock_wait_timeout=10 # 设置事务等待行锁的最长时间
innodb_doublewrite=ON # 启用InnoDB的双重写入缓冲区功能
innodb_file_format=Barracuda # 设置InnoDB表的文件格式。Barracuda格式支持压缩和动态行格式。
innodb_log_file_size=512M  # InnoDB日志文件大小  
innodb_log_buffer_size=16M  # InnoDB日志缓冲区大小  
innodb_flush_log_at_trx_commit=1  # 每事务提交时刷新日志,设为1保证数据完整性  
innodb_file_per_table=1  # 每个表一个独立表空间文件  
innodb_open_files=300  # InnoDB打开的文件数量  

#bin log
expire_logs_days=30 # 二进制日志(binlog)的自动删除天数
max_binlog_cache_size=1024M # 设置会话级别的二进制日志缓存的最大大小
sync_binlog=1 # 每次提交事务后都同步到日志
server_id=1001 # 服务器的唯一标识符用于区分主从服务器
gtid-mode=on # 启用全局事务标识符(GTID)模式
enforce-gtid-consistency=true # 在GTID模式下,强制要求事务的一致性
master-info-repository=TABLE # 主服务器信息的存储位置
relay-log-info-repository=TABLE # 中继日志信息的存储位置
sync-master-info=1000 # 将主服务器信息同步到磁盘的频率

# 临时表和相关设置  
tmp_table_size=64M  
max_heap_table_size=64M  

# 日志和错误报告  
log_error=/var/log/mysql/mysqld.log 
slow_query_log=1  # 开启慢查询
slow_query_log_file=/var/log/mysql/mysql-slow.log  
long_query_time=2  # 记录执行时间超过2秒的查询  
log_queries_not_using_indexes=1  # 记录未使用索引的查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值