linux下面MySQL变量修改及生效
今天在访问mysql项目的时候突然报500错误,没有找到连接,因此想到mysql的连接时间。
mysql> show global variables;
主要就是连接时间是28800(8小时),而且任务调度也没打开,因此想到修改全局变量的值。
1.修改任务调度装:
1.1具体的查看任务调度的状态:show variables like '%event%';
1.2修改任务打开状态:set global event_scheduler=on;
2.修改数据库连接时间:
2.1查看连接时间:show variables like '%timeout%';
发现默认保持时间是2880(8小时)
2.2修改连接时间:
mysql> set global wait_timeout=604800; Query OK, 0 rows affected (0.00 sec) mysql> set global interactive_timeout=604800; Query OK, 0 rows affected (0.00 sec)
2.3.查看连接时间:show variables like '%timeout%';
发现好像没生效。在这个会话里变量使不生效的需要退出后在进入查看mysql变量就生效。也就是退出mysql重新登录一下发现刚才的配置生效。
3.重新启动mysql服务器后发现又不起作用了(修改/etc/my.cnf使变量启动生效)
修改好后记得要修改my.cnf文件让mysql在重启后变量值不变,要注意的是使用set global设置mysql的变量值需要在配置的时候
在my.cnf文件里的[mysqld]栈下写下这个变量,不然mysql还是要重启的。
重新启动发现三个变量都生效,修改mysql的启动默认值需要修改/etc/my.cnf文件
mysql重要的全局变量:event_scheduler 任务调度
wait_timeout 连接时长
interactive_timeout 连接时长
max_allowed_packet 参数限制,导致写入或者更新失败
总结:
最后在my.cnf中也有mysql日志文件的位置,也就是mysql的默认配置都是修改的,只需要修改my.cnf,如果查看mysql 的默认值的话就是用上面的show variables like '%...%'
因此也联想到刚开始安装mysql服务器修改my.cnf中mysql的默认编码,参考:http://www.cnblogs.com/qlqwjy/p/7504865.html
修改mysql 的配置要了解当前版本mysql有哪些全局变量,不同版本的mysql全局变量不同,知道有哪些变量再对应的修改其值为想要的值