mysql常用配置优化 my.cnf
# #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径,如:/home/www/mysql_bin_log/mysql-bin
log-bin=mysql-bin
# 设定mysql的复制模式(STATEMENT ROW MIXED)
binlog_format=mixed
# 绕过密码验证可直接使用root登录(用于修改密码)
#skip-grant-tables=1
# 启动服务器来禁用主机名缓存
skip-host-cache
# 如果这个参数设为OFF,则MySQL服务在检查客户端连接的时候会解析主机名;如果这个参数设为ON,则MySQL服务只会使用IP,在这种情况下,授权表中的Host字段必须是IP地址或localhost。
skip-name-resolve
# 网络传输时单个数据包的大小
max_allowed_packet = 500M
# 设置数据库的时间
default-time-zone = '+8:00'
# 内部内存临时表的最大内存
tmp_table_size=200M
# MySQL服务器用来作普通索引扫描、范围索引扫描和不使用索引而执行全表扫描这些操作所用的缓存大小。
join_buffer_size = 32M
# 每个会话执行排序操作所分配的内存大小。
sort_buffer_size = 1M
# 每个客户端线程和连接缓存和结果缓存交互,每个缓存最初都被分配大小为net_buffer_length的容量,并动态增长,直至达到max_allowed_packet参数的大小
net_buffer_length = 8K
# 为每个线程对MyISAm表执行顺序读所分配的内存。如果数据库有很多顺序读,可以增加这个参数,默认值是131072字节。
read_buffer_size = 512K
# 这个参数用在MyISAM表和任何存储引擎表随机读所使用的内存。
read_rnd_buffer_size = 32M
# 在REPAIR TABLE、CREATE INDEX 或 ALTER TABLE操作中,MyISAM索引排序使用的缓存大小。
myisam_sort_buffer_size = 256M
# 设置客户端���并发连接数量
max_connections = 8000
# mysql关闭非交互连接前的等待时间,单位是秒
wait_timeout = 604800
# Mysql关闭交互连接前的等待时间,单位是秒
interactive_timeout = 604800
# 设定远程用户必须回应PORT类型数据连接的最大时间
connect_timeout = 30
# 如果客户端尝试连接的错误数量超过这个参数设置的值,则服务器不再接受新的客户端连接。可以通过清空主机的缓存来解除服务器的这种阻止新连接的状态,通过FLUSH HOSTS或mysqladmin flush-hosts命令来清空缓存。
max_connect_errors = 30000
# mysql关闭连接前的等待时间,单位是秒
interactive_timeout = 86400
# 慢查询的时间设置,单位为秒
long_query_time = 20
# mysql服务缓存以重用的线程数
thread_cache_size = 120
# 为查询结果所分配的缓存
query_cache_size = 256M
# 如果一个事务需要的内存超过这个参数,就会报错
max_heap_table_size=2097152000
# 允许一些不合法的操作,5.7版本默认不为空,可以定义(sql_mode='')
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# 用来存放Innodb的内部目录 这个值不用分配太大,系统可以自动调。
#innodb_additional_mem_pool_size = 16M
# 日志组中每个日志文件的字节大小。所有日志文件的大小(innodb_log_file_size * innodb_log_files_in_group)不能超过512GB。
innodb_log_file_size = 256M
# InnoDB日志组包含的日志个数。InnoDB以循环的方式写入日志。这个参数的默认值和推荐值均是2。日志的路径由innodb_log_group_home_dir参数设定。
innodb_log_files_in_group=2
# InnoDB写入磁盘日志文件所使用的缓存字节大小。
innodb_log_buffer_size=16M
# 当这个参数启用的时候,InnoDB会将新建表的数据和索引单独存放在.ibd格式的文件中,而不是存放在系统表空间中。
innodb_file_per_table=1
# InnoDB数据文件的路径和大小。
innodb_data_file_path = ibdata1:10M:autoextend
# InnDB存储引擎缓存表和索引数据所使用的内存大小
innodb_buffer_pool_size = 8192M
# 当提交相关的I/O操作被批量重新排列时,这个参数控制提交操作的ACID一致性和高性能之间的平衡。
innodb_flush_log_at_trx_commit = 2
# InnDB事务等待行锁的时间长度。默认值是50秒。
innodb_lock_wait_timeout = 50
# 指定刷新数据到InnoDB数据文件和日志文件的方法,刷新方法会对I/O有影响。
innodb_flush_method=O_DIRECT
参考地址: http://dbase.cc/2017/08/25/mysql/MySQL-%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E8%AF%BE%E7%A8%8B%E5%AD%A6%E4%B9%A0/03-MySQL-%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%20/