欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql一些设置处理参考(一)

程序员文章站 2022-07-15 10:04:16
...

1.设置自动连接断开时间,需要在数据库里配置好,避免下次机器重启后再次配置
隔几天就报连接错误,困扰好久了

引用

org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 90,764,518 milliseconds ago.  The last packet sent successfully to the server was 90,764,518 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.


解决办法:
增加wait_timeout的时间。
减少Connection pools中connection的lifetime。
测试Connection pools中connection的有效性。
当然最好的办法是同时综合使用上述3种方法
考虑用增加时间,验证的话太费性能了.
但设置时间重启后失效,在mysql配置文件里面设置无效果
参考帖子http://www.itpub.net/thread-1308603-1-1.html

引用

问题1:这里为什么要同时设置interactive_timeout,wait_timeout的设置才会生效?
答:    不设置interactive_timeout,wait_timeout也会生效。
问题2:interactive的值如果设置的和wait_timeout不同,为什么Interactive_timeout会覆盖wait_timeout?
答:在交互模式下(CLIENT_INTERACTIVE),interactive_timeout才生效,非交互模式下,不生效。

问题3:在进行MySQL优化时,因为interactive_timeout决定的是交互连接的时间长短,而wait_timeout决定的是非交互连接的时间长短。如果在进行连接配置时mysql_real_connect()最后一个参数client_flag不设置为CLIENT_INTERACTIVE,是不是interactive_timeout的值不会覆盖wait_timeout?

答:可以做实验试试。

问题4:为了减少长连接的数量,在设置优化时是不是可以将interactive_timeout的值设置的大些,而wait_timeout的值设置的小些?但是问题2的描述好像又不允许这样。。。


答:如2所述,在交互模式下,interactive_timeout取代wait_timeout。这样,如果有的客户端是交互模式方式连接mysql server。那么客户端的timeout受制于interactive_timeout。如果有的客户端是非交互模式,长连接mysql server。那么客户端的timeout受制于wait_timeout。(是否是交互模式的连接,由客户端决定)


    修改mysql.cnf依然无法解决,只能每次set interactive_timeout = 2880000;
set wait_timeout = 2880000;并且写脚本在开机时候运行
如下

#!/bin/bash
mysql -uroot -proot <<EOF
set global interactive_timeout=2800000;
set  global wait_timeout=2800000;
exit
EOF



开机设置参考http://jiajun.iteye.com/blog/387265
2.要么定期清理日志记录,要么关掉日志备份
     最近频繁导入删除数据,导致磁盘爆掉,1g多得数据量,23g的日志文件,伤不起
3.mysql数据库权限配置修改,给项目配置适合的权限,防止hacker
      一哥们,两年经验,给了最高权限,直接把俺们数据库删除了,什么叫伤不起,给该给的权限防止问题
4.mysql上线后需要特殊优化比如IO配置 参考<<mysql技术内幕>>

 

更正:改配置文件无法解决,由于没有配置到【msyqld】下面导致---20130426

相关标签: mysql