mysql8怎么设置参数 mysql80怎么用( 二 )


MySQL中的配置参数interactive_timeout和wait_timeout设置1)interactive_timeout:
参数含义:服务器关闭交互式连接前等待活动的秒数 。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端 。
参数默认值:28800秒(8小时)
(2)wait_timeout:
参数含义:服务器关闭非交互连接之前等待活动的秒数 。
在线程启动时 , 根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义) 。
参数默认值:28800秒(8小时)
MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存 , 因此我们希望客户端在连接到My SQL Server 处理完相应的操作后,应该断开连接并释放占用的内存 。如果你的MySQL Server有大量的闲置连接 , 他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到MySQL Server的连接上限数 , 这会报'too many connections'的错误 。对于wait_timeout的值设定,应该根据系统的运行情况来判断 。在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,可以进行适当的调整小些 。
问题:
如果在配置文件my.cnf中只设置参数wait_timeout=100,则重启服务器后进入 , 执行:
Mysql show variables like “%timeout%”;
会发现参数设置并未生效,仍然为28800(即默认的8个小时) 。
查询资料后,要同时设置interactive_timeout和wait_timeout才会生效 。
【mysqld】
wait_timeout=100
interactive_timeout=100
重启MySQL Server进入后,查看设置已经生效 。
如何设置合理的mysql的参数[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql
pid-file = /data/mysql/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1 #表示是本机的序号为1,一般来讲就是master的意思
skip-name-resolve
# 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间 。但需要注意,如果开启该选项,
# 则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求
#skip-networking
back_log = 600
# MySQL能有的连接数量 。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,
# 然后主线程花些时间(尽管很短)检查连接并且启动一个新线程 。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中 。
# 如果期望在一个短时间内有很多连接,你需要增加它 。也就是说,如果MySQL的连接数据达到max_connections时,新来的请求将会被存在堆栈中,
# 以等待某一连接释放资源,该堆栈的数量即back_log , 如果等待连接的数量超过back_log,将不被授予连接资源 。
# 另外 , 这值(back_log)限于您的操作系统对到来的TCP/IP连接的侦听队列的大小 。
# 你的操作系统在这个队列大小上有它自己的限制(可以检查你的OS文档找出这个变量的最大值) , 试图设定back_log高于你的操作系统的限制将是无效的 。
max_connections = 1000
#
MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量 , 当然这建立在机器能支撑的情况下 , 因为如果连接数越多,

推荐阅读