本文的推荐参数值设置基于4G-8G内存的服务器。具体情况根据服务器环境再做调整。

Setting Default Recommended Info
back_log 50 500 参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。
key_buffer_size 8388600(8m) 402649088(400mb) 指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。
max_allowed_packet 1024(1m) 20480(20m) MySQL根据配置文件会限制Server接受的数据包大小。有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败。
thread_stack 196608(192KB) 262,144(256KB) 每个连接线程被创建时,MySQL给它分配的内存大小。当MySQL创建一个新的连接线程时,需要给它分配一定大小的内存堆栈空间,以便存放客户端的请求的Query及自身的各种状态和处理信息。
table_cache 2000 512 table_cache是一个非常重要的MySQL性能参数,它在5.1.3之后的版本中叫做table_open_cache。table_cache主要用于设置table高速缓存的数量。
sort_buffer_size 1048576(1m) 1048576(1m) 查询排序时所能使用的缓冲区大小。sort_buffer_size并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统内存资源。
read_buffer_size 1048576(1m) 1048576(1m) 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
join_buffer_size 1048576(1m) 1048576(1m) 联合查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
thread_cache_size 32 32/64 线程缓存大小。
query_cache_size 0 32 MySQL高速缓存。
tmp_table_size 16777216 16777216 配置内部内存临时表的大小。
max_connections 100 3000 指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现TooManyConnections的错误提示,则需要增大该参数值。
max_connect_errors 100 100 如果MySQL服务器连续接收到了来自于同一个主机的请求,而且这些连续的请求全部都没有成功的建立连接就被中断了,当这些连续的请求的累计值大于max_connect_errors的设定值时,MySQL服务器就会阻止这台主机后续的所有请求。
wait_timeout 28800(8小时) 28800(8小时) 在默认配置不改变的情况下,如果连续8小时内都没有访问数据库的操作,再次访问mysql数据库的时候,mysql数据库会拒绝访问。

错误调整

部分参数可能因为版本升级导致弃用或者默认值变化,具体情况还需具体分析。

unknown variable 'key-buffer=256M' ,修改my.cnf文件去掉改项即可。

unknown variable 'table-cache=512' 修改为table_open_cache即可。

unknown variable 'thread-concurrency=8' 去掉改项,5.7已结废弃。

# To Be Continued!😎

Last Updated: 2/7/2021, 1:33:21 PM