为了测试数据库超时(默认8小时),需要修改数据库超时时间。但是设置之后发现并没有改变,有两个原因:
第一个就是未区分全局变量和会话变量,设置和查询时带上global查询的是全局变量。
第二个是因为超时时间是interactive_timeout和wait_timeout共同决定的,需要同时修改interactive_timeout
show VARIABLES like '%timeout%' ;set global interactive_timeout=57600;set global wait_timeout=57600;set interactive_timeout=57600;set wait_timeout=57600;show VARIABLES like '%timeout%' ;show global VARIABLES like '%timeout%' ;
这样就可以查看到修改立即生效了,但是数据库如果重启了就会恢复为默认值。要重启后也生效的话需要修改f或my.ini增加这两个参数的设置值。
[mysqld]
wait_timeout=57600
interactive_timeout=57600