1:在MySQL的MyISAM表损坏的原因如下:
1、对服务器突然断电造成的数据文件被损坏;强制关机,MySQL服务未关闭第一;的mysqld进程时被桌子上写。
2,磁盘损坏。
三.服务器已死。
4,MySQL本身的错误。
二:对MySQL的MyISAM表损伤症状总结:
1,查询数据时间错误:表的错误密钥文件:……尝试修复它
2,查询无法查找表中的行或返回不完整的数据。
3,错误:表…被标记为崩溃,应该修复。
4。打开表失败:无法打开文件:X x.myi(错误:145)。
三:在MySQL MyISAM表损伤的预防:
1、定期检查MyISAM表。你可以用myisamchk,你可以使用mysqlcheck,您可以使用检查表。
2,在做了大量的更新或删除操作,使用mysqlcheck或优化表优化数据表,这不仅降低了文件碎片,也降低了表损坏的概率。3。在关闭服务器,关闭mysqld(关闭服务通常不使用杀9杀进程)。
4。使用ups电源避免突然停电。
5,使用MySQL的最新稳定版本,减少MySQL本身的错误会导致表损坏。
6,对磁盘进行磁盘扫描,减少磁盘错误,提高性能。
7、数据库服务器应只运行mysqld和其他必要的服务,并没有运行其他业务服务,从而降低对这次空难造成的表损坏的可能性。
四:MyISAM表腐败修复MySQL的总结:
1、如果mysqld已经坏了,无法启动,您可以使用mysiamchk工具修复。这个工具可以用来当mysqld服务没有启动。该工具可以检查和分析和修复MyISAM表。
2、如果mysqld正在运行或可重新启动,可以用工具修复mysqlcheck。或修复它直接通过内置修复SQL语句MySQL:检查表、修表、分析表、优化表。这两种方法也可以达到修表。上述两方法应用场景。
在MySQL数据表的巧妙修复被恢复到MySQL表之前,首先要知道哪个表是问题所在。
你可以用根登录并找到表名在information_schema问题
选择table_schema作为db_dbname,从information_schema.tables在发动机空table_name;
它可以在事件查看器中找到,如果有的话。
应用程序日志类型是错误——来自事件源的MySQL的错误日志,可能是内容。
1 xxxxx:表。xxxx'is标记为坠毁,必须修复
或者直接看在phpmyadmin这表是没有问题的,如显示器的使用
如果你的问题上看,你可以使用一个命令来修复MyISAM表在MySQL数据库
1、检查、修理
例如,ABC测试表有问题。
复制代码代码如下所示:
# MySQL U根p'abc '; / / MySQL登录控制台,进入ABC数据库
MySQL >检查表测试; / /如果在msg_type有问题将被警告或错误,没有问题的结果是,现状是好的
修复表测试;测试修复表(用逗号分隔的多个表名称)
检查表测试;再次检查以确认修复是否成功。
2。myisamchk,isamchk
myisamchk适用于数据表的表式,并isamchk适用于ISAM型MySQL数据表,这两个命令的主要参数是相同的。总的来说,新的系统使用MyISAM作为默认的数据类型,这是用myisamchk为例说明。当数据表被发现有问题,可以用:
tablename.myi myisamchk
测试,如果需要修理,可以使用:
myisamchk - tablename.myi
用myisamchk详细规格,看到它的使用帮助。当我们需要注意的是,我们需要确保MySQL服务器不能访问MySQL数据表的修改。当它被保险时,最好在测试时关闭MySQL服务器关机。
mysqladmin -中- P关机
此外,你可以把下面的命令在rc.local启动MySQL服务器。
{ x / / MySQL TMP。袜子} / / pathtochk myisamchk - / / / * * data_dir。我
/ /到MySQL监控袜子TMP文件位置的用户应该使用RPM / / / MySQL库功 / / 到安装,TMP /到安装使用源代码,可以根据自己的实际情况发生变化,与pathtochk是kill -9的位置,data_dir是你的MySQL数据库存储位置。
当你需要注意的是,如果你打算把这个命令在你的rc.local,您必须确认执行这条指令时,MySQL服务器不能启动。
三.检测和修复所有数据库(表)
复制代码代码如下所示:
mysqlcheck - O·R·P
mysqlcheck -数据库- R