wait_time参数





1.未修改的 wait_timeout 的初始值是28800,单位为秒,等于8个小时


2.wait_timeout过大有弊端,其体现就是mysql里有大量的sleep进程无法及时释放,拖累系统性能
但是,也不能设置太小,否则你可能会遇到 mysql has gone away 之类的问题

把wait_timeout设置为10是个不错的选择(需要根据具体的业务需求来设置)
但某些情况下可能也会出问题,比如说有一个cron脚本,其中两次SQL查询的间隔时间大于10秒的话,
那么这个设置就有问题了
(当然,这也不是不能解决的问题,你可以在程序里时不时mysql_ping一下,以便服务器知道你还活着,重新计算wait_timeout时间)


3.解决办法(建议临时生效,然后把设置写入到mysql配置文件,等待下次数据库维护的时候重启数据库)
方法一 永久生效                  -- 此方法需要重启mysql服务
# vi /etc/my.cnf
[mysqld]
wait_timeout=10

# /etc/init.d/mysql restart


方法二  临时生效                 -- 此方法重启mysql服务会失效()
mysql> set global wait_timeout=10;

mysql> show global variables like 'wait_timeout';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| wait_timeout               | 10    |
+----------------------------+-------+

注意
如果查询时使用的是show variables的话,会发现设置好像并没有生效,
这是因为单纯使用show variables的话就等同于使用的是show session variables,查询的是会话变量,
只有使用show global variables,查询的才是全局变量

posted @ 2021-07-23 17:08  李成果  阅读(517)  评论(0编辑  收藏  举报