mysql配置文件小优化及主主模式

这只是个人工作中的参数
 
不区分大小写
lower_case_table_names=1
 
 
#索引和数据缓冲区大小,一般设置物理内存的60%-70% 
innodb_buffer_pool_size = 5G

#缓冲池实例个数,推荐设置4个或8个
innodb_buffer_pool_instances = 4

#关键参数,0代表大约每秒写入到日志并同步到磁盘,数据库故障会丢失1秒左右事务数据。1为每执行一条SQL后写入到日志并同步到磁盘,I/O开销大,执行完SQL要等待日志读写,效率低。2代表只把日志写入到系统缓存区,再每秒同步到磁盘,效率很高,如果服务器故障,才会丢失事务数据。对数据安全性要求不是很高的推荐设置2,性能高,修改后效果明显
innodb_flush_log_at_trx_commit = 2

#默认是共享表空间,共享表空间idbdata文件不断增大,影响一定的I/O性能。推荐开启独立表空间模式,每个表的索引和数据都存在自己独立的表空间中,可以实现单表在不同数据库中移动。
innodb_file_per_table = OFF

#日志缓冲区大小,由于日志最长每秒钟刷新一次,所以一般不用超过16M
innodb_log_buffer_size = 8M 


# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
 log_bin=mysql-bin

# These are commonly set, remove the # and set as required.
 basedir = /usr/local/mysql
 datadir = /data
# port = .....
 server_id = 1002
# socket = .....

# 注:当设置隔离级别为READ-COMMITED必须设置二进制日志格式为ROW,MySQL官方认为STATEMENT这个已经不再适合继续使用;但mixed类型在默认的事务隔离级别下,可能会导致主从数据不一致; 推荐使用 row  
binlog-format=ROW

# 启用这个参数,可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度  
# 只对row binlog格式有效.启用后,会向binlog中写入更多的调试信息,比如sql语句自身都会被写进去. mysqlbinlog -vv 可以看到.  
binlog-rows-query-log_events= 1
  
# 这个选项允许应用程序只能对行的镜像数据进行复制,而不在关心行是否已经进行了DML操作.这提高了主从机器的复制吞吐量,减少了二进制日志所占用的磁盘空间、网络资源和内存占用.
binlog-row-image = minimal

report-host= 192.168.140.199
report-port= 3306
gtid-mode= on
enforce-gtid-consistency= true
log-slave-updates= true

# master-info-repository/relay-log-info-repository都设置为TABLE,mysql.slave_master_info与 mysql.slave_relay_log_info 中,table都是innodb类型的,支持事务,比文件安全 # 默认值是FILE, 比如master info就保存在master.info文件中,relay log info保存在relay-log.info文件中,如果服务器意外关闭,正确的relay info 没有来得及更新到 relay-log.info文件,这样会造成数据丢失
master-info-repository= TABLE  
relay-log-info-repository= TABLE

# 启用之后,使binlog在每N次binlog写入后与硬盘 同步
sync-master-info=1

# 以下是对二进制日志一些设置  
binlog_cache_size = 4M  
max_binlog_size = 1G  
max_binlog_cache_size = 2G  
# 以下这几个参数是启用binlog/relaylog的校验,防止日志出错  
binlog-checksum= CRC32  
slave_allow_batching = 1  
master-verify-checksum= 1  
slave-sql-verify-checksum= 1 

# 开启基于库的多线程复制.默认是0,不开启,最大并发数为1024个线程  
slave-parallel-workers=4

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

#查询排序时缓冲区大小,只对order by和group by起作用,可增大此值为16M
sort_buffer_size = 16M

#查询缓存限制,只有1M以下查询结果才会被缓存,以免结果数据较大把缓存池覆盖
query_cache_limit = 1M

#查看缓冲区大小,用于缓存SELECT查询结果,下一次有同样SELECT查询将直接从缓存池返回结果,可适当成倍增加此值
query_cache_size = 16M

#打开文件数限制,如果show global status like 'open_files'查看的值等于或者大于open_files_limit值时,程序会无法连接数据库或卡死
open_files_limit = 1024
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[root@localhost include]# cat /etc/my.cnf
原文地址:https://www.cnblogs.com/jiange13/p/4835485.html