大年夜多半做 DBA 的同窗,可能都邑被开辟人员告诉,你们的数据库报了这个缺点了,赶紧看看是哪狼9依υ?题。
这个问题是由两个参数影响的,wait_timeout 和 interactive_timeout。
数据默认的设备时光是 28800(8小时)意味着,跨越这个时光之后,MySQL 数据库为了节俭资本,就会在数据库端断开这个连接,MySQL 办事器端将其断开了,然则我们的法度榜样再次应用这个连接时没有做任何断定,所以就挂了。
解决思路:先要懂得这两个参数的特点,这两个参数必须同时设置,并且必须要包管值一致才可以。
我们可以恰当加大年夜这个值,8 小时太长了,不实用于临盆情况。因为一个连接长时光不工作,还占用我们的连接数,会消费我们的体系资本。
解决办法:可以恰当在法度榜样中做断定,强烈建议在操作停止时更改应用法度榜样逻辑以精确封闭连接,然后设置一个比较合理的 timeout 的值(根据营业情况来断定)。
然则如许操作就可以;
案例十
can’t open file (errno:24)
有的时刻,数据库跑得好好的,忽然报不克不及打开数据库文件的缺点了。
解决思路:起首我们要先查看数据库的 error log。然后断定是表破坏,照样权限问题。还有可能磁盘空间不足导致的不克不及正常拜访表;操作体系的限制也要存眷下;用 perror 对象查看具体缺点!
/usr/local/mysql/bin/mysqlbinlog –no-defaults -v -v –base64-output=decode-rows /data/mysql/mysql-bin.000014 |grep -A 10 1708 > 1.log
问题还原:
- linux:/usr/local/mysql/bin # ./perror 24
- OS error code 24: Too many open files
超出最大年夜打开文件数限制!ulimit -n 查看体系的最大年夜打开文件数是 65535,弗成能超出!那必定是数据库的最大年夜打开文件数超出限制!
在 MySQL 里查看最大年夜打开文件数限制敕令:show variables like ‘open_files_limit’;
发明该数值过小,改为 2048,重启 MySQL,应用正常。
处理办法:
repair table ;
chown mysql 权限
清理磁盘中的垃圾数据
往后还会持续总结 MySQL 中的各类报错处理思路与办法,欲望跟各位老铁们,同窗们一路尽力。多沟通多交换!
【编辑推荐】
- 若何懂得并精确应用MySQL索引
- MySQL的两阶段加锁协定
- 【MySQL标记】七种JOIN的SQL
- 一次Mysql改表激发LVS下RS机械全下线的问题
- 青铜到王者,快速晋升你MySQL数据库的段位!
推荐阅读
云原生工作负载和容器本质上是不合的。人们须要懂得若何保持安然,起重要懂得赓续变更的威逼性质。那么哪个更安然:虚拟机(VM)照样容器?事实是,确保容器和云原生工作负载的安然与虚拟机不>>>详细阅读
本文标题:MySQL数据库的“十宗罪”(附10大经典错误案例)
地址:http://www.17bianji.com/lsqh/37079.html
1/2 1