各位好,小第在学习的过程中遇到如下问题:
现有服务器A和服务器B以及服务器C,服务器 A 每20分钟产生一个mysql表(frm MYI MYD),通过rsync机制,发送到服务器B和服务器C,服务器B,C分别对表文件进行解析,并做后续处理.
产生如下现象:
1.部分表 在服务器B和服务器C上解析正常.
2.部分表 在服务器B上解析正常,在服务器C上无法解析,主要表现在:
1)select count(*) from 表名 的返回结果为0,但是 MYD文件的大小是17M多,也就是说表内是有内容的.
2) 强调的是,该表在服务器B上可以解析. 对于服务器C无法解析的表做如下操作:
1) create 一个新的数据库
2) 将无法解析的表文件(frm,MYI,MYD)拷贝到新的数据库下
3) 在新的数据库下 select count(*) from 表名 后,返回结果正常,也就是非0.
产生的问题比较奇怪,请指教下.
现有服务器A和服务器B以及服务器C,服务器 A 每20分钟产生一个mysql表(frm MYI MYD),通过rsync机制,发送到服务器B和服务器C,服务器B,C分别对表文件进行解析,并做后续处理.
产生如下现象:
1.部分表 在服务器B和服务器C上解析正常.
2.部分表 在服务器B上解析正常,在服务器C上无法解析,主要表现在:
1)select count(*) from 表名 的返回结果为0,但是 MYD文件的大小是17M多,也就是说表内是有内容的.
2) 强调的是,该表在服务器B上可以解析. 对于服务器C无法解析的表做如下操作:
1) create 一个新的数据库
2) 将无法解析的表文件(frm,MYI,MYD)拷贝到新的数据库下
3) 在新的数据库下 select count(*) from 表名 后,返回结果正常,也就是非0.
产生的问题比较奇怪,请指教下.
select * from tt
有无记录
奇怪的问题是,在另一台服务器上,是可以解析而且成功的.
奇怪的问题之二是,假设该表在服务器X上不能解析,我在该服务器上重新建立一个数据库,把这个表拷贝到新建的数据库下,之后在select count(*) from 表名,返回的接非0,也就是说表解析正确.
另外MYSQL的版本是否一致?
MYSQL的版本是一致的.操作系统统一为linux 2.6