教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql 2013错误的解决方法

mysql 2013错误的解决方法

发布时间:2015-11-13   编辑:jiaochengji.com
mysql 2013错误,导致无法登陆mysql gui工具,而且dos也进不去,提示ping 127.0.0.1。问题描述:使用 mysql 过程中,偶尔查询或一段时间内的登录会失败,返回错误:Lost Connection During Query。

mysql 2013错误,导致无法登陆mysql gui工具,而且dos也进不去,提示ping 127.0.0.1。

问题描述:使用 mysql 过程中,偶尔查询或一段时间内的登录会失败,返回错误:Lost Connection During Query。

问题定位:
一个 mysql server 管理好多个数据库,查询又不是时刻发生的,常常不知所措。无法登录时,更是束手无策。
最初,比较粗暴的方法是重启 mysql,问题在一段时间内能缓解。
后来,使用 flush tables 也能在一段时间内缓解。
再后来,通过查看 mysql 的错误日志,发现一共有三种提示信息:
第一种:080724 19:55:05 [ERROR] Error in accept: Too many open files,这种明显是由于 mysql 打开文件个数过多,mysql 无法再“接收”新的连接进来,也就是没有办法登录,造成连接失败。
第二种:080724 19:45:11 [ERROR] /usr/local/mysql/bin/mysqld: Sort aborted,这种是放弃了排序,但没有说明原因。
第三种:080725 9:30:33 [ERROR] /usr/local/mysql/bin/mysqld: Can't open file: 'OperateRecord.MRG' (errno: 24),这种是打开文件失败,错误码是24,通过 perror 查询详细的错误原因是:OS error code 24: Too many open files,也是打开文件过多。再通过 status 查看 mysql 的打开文件个数,此时一般都接近 1000 个。再通过 show variables 查看 mysql 的配置,默认其打开文件个数为 open_files_limit 为 2048,按道理说这个大小是足够的。

解决方法:

1、重启mysql服务,解决问题,如果没有解决,参考第二条(俺是这样搞定的)

原来 mysql 中的 open_files_limit 只是限制 mysql 这个进程打开的最大文件个数。而内核也会对 mysql 打开的进程数进行限制,并且优先级要高。通过 ulimit -a 查看 mysql 这个用户的最大打开文件个数,发现其值为 1024(linux 默认都是1024)。原来,mysql 已经打开了近 1000 个表,若再打开一个 merge 表(包含100个子表),导致文件句柄过多而失败。通过修改 /etc/security/limits.conf 配置文件,
添加如下行:*   -  nofile   4096,把该限制放大,重启 mysql。

2、设置 mysql 打开文件限制方法:
把 set-variable=open_files_limit=10240 加到配置文件中。

您可能感兴趣的文章:
mysql提示MySQL server has gone away导入时报错2006错误
mysql启动错误报1067错误怎么解决
mysql: unrecognized service错误的解决方法
mysql 导入数据报2006错误的解决方法
解决Lost connection to MySQL server during query错误方法
无法启动mysql服务,进程意外终止,1067错误的解决方法
mysql 2013错误的解决方法
mysql服务无法启动报错误1067的解决方法
mysql 1203错误的解决方法
安装MYSQL-PYTHON包报错mysql_config not found解决办法

[关闭]
~ ~