提示的错误是Error 2013: Lost connection to MySQL server during query
而且我发现我只对其中一个表进行操作的时间就发生这种情况了,其他表中的数据都可以访问(在dos下),只有那个表一访问,就会出现上面的错误,Error 2013: Lost connection to MySQL server during query,数据还能取出来吗?
应该没问题! 我前两天也遇到过这个问题!不过和你得有些区别,我的是整个数据库不能远程访问。 ERROR 2013: Lost connection to MySQL server during query 这个问题是由于glibc的一个bug造成的。我的Server/OS是RedHat8.0 在glibc某些版本中,gethostbyaddr函数(确切地说是_nss_dns_gethostbyaddr_r)存在缓冲区溢出问题,在处理大数据时会造成SEGMENT FAULT。 在处理远程连接时,mysqld会调用ip_to_hostname()函数,再由这个函数调用gethostbyaddr函数,最后系统在执行nss_dns_gethostbyaddr_r函数处崩溃。因此,会出现上述情况。 解决问题的办法是升级glibc。 我升级时还遇到一个小问题,用 rpm -Uvh glibc-2.3.2-4.80.6.i386.rpm总是报错! 我强制升级就好了!至于glibc升级包我是从RedHat9.0上copy出来的。
lehool帅哥,我用的是windows操作系统,你说的那个是linux系统的吧
1.标准的表修复 a.试着用 --recover选项修复表,可以加上 --quick选项试图只根据索引的内容进行修复,这样做不触及数据文件。 % myisamchk --recover --quick table_name or % isamchk --recover --quick table_name b.如果问题还存在,在试一下上一步命令,但是要忽略 --quick选项,这样允许修改数据文件。 % myisamchk --recover table_name or % isamchk --recover table_name c.如果还不工作,试一下 --safe-recover 修复方法。但这种方法比普通方法要慢,但能修复 --recover不能修复的问题。 % myisamchk --safe-recover table_name or % myisamchk --safe-recover table_name 如果在myisamchk or isamchk 由于一个"can't create new temp file:file_name"的错误消息在任何一步停止,应该重复该命令并 加入 --force选项强迫清除临时文件。
C:\Documents and Settings\User>cd c:\mysql\bin C:\mysql\bin>myisamchk --recover --quick c:\mysql\data\userdb\reguser - check key delete-chain - check record delete-chain - recovering (with sort) MyISAM-table 'c:\mysql\data\userdb\reguser' Data records: 0 - Fixing index 1 - Fixing index 2 大体这么用!
我前两天也遇到过这个问题!不过和你得有些区别,我的是整个数据库不能远程访问。
ERROR 2013: Lost connection to MySQL server during query
这个问题是由于glibc的一个bug造成的。我的Server/OS是RedHat8.0
在glibc某些版本中,gethostbyaddr函数(确切地说是_nss_dns_gethostbyaddr_r)存在缓冲区溢出问题,在处理大数据时会造成SEGMENT FAULT。
在处理远程连接时,mysqld会调用ip_to_hostname()函数,再由这个函数调用gethostbyaddr函数,最后系统在执行nss_dns_gethostbyaddr_r函数处崩溃。因此,会出现上述情况。
解决问题的办法是升级glibc。
我升级时还遇到一个小问题,用 rpm -Uvh glibc-2.3.2-4.80.6.i386.rpm总是报错!
我强制升级就好了!至于glibc升级包我是从RedHat9.0上copy出来的。
a.试着用 --recover选项修复表,可以加上 --quick选项试图只根据索引的内容进行修复,这样做不触及数据文件。
% myisamchk --recover --quick table_name
or
% isamchk --recover --quick table_name
b.如果问题还存在,在试一下上一步命令,但是要忽略 --quick选项,这样允许修改数据文件。
% myisamchk --recover table_name
or
% isamchk --recover table_name
c.如果还不工作,试一下 --safe-recover 修复方法。但这种方法比普通方法要慢,但能修复 --recover不能修复的问题。
% myisamchk --safe-recover table_name
or
% myisamchk --safe-recover table_name
如果在myisamchk or isamchk 由于一个"can't create new temp file:file_name"的错误消息在任何一步停止,应该重复该命令并
加入 --force选项强迫清除临时文件。
C:\mysql\bin>myisamchk --recover --quick c:\mysql\data\userdb\reguser
- check key delete-chain
- check record delete-chain
- recovering (with sort) MyISAM-table 'c:\mysql\data\userdb\reguser'
Data records: 0
- Fixing index 1
- Fixing index 2
大体这么用!