怎么查看mysql数据库中的表是否损坏可以使用语句检查表 。如果结果的msg_text部分是好的,那么你的表是健康的 。反之 , 则表明mysql数据库中的表有损坏 。另外有些厉害的高手一额可以通过运行脚本来检测 。
MyISAM 表可以采用以下方法进行修复 :使用 reapair table 或myisamchk 来修复 。如果修复无效,采用备份恢复表 。
阶段1 :检查你的表
如果你有很多时间,运行myisamchk *.MYI 或myisamchk -e *.MYI。使用-s (沉默)选项禁止不必要的信息 。如果mysqld 服务器处于宕机状态,应使用--update-state 选项来告诉myisamchk 将表标记为' 检查过的'。
你必须只修复那些myisamchk 报告有错误的表 。对这样的表,继续到阶段2。如果在检查时 , 你得到奇怪的错误( 例如out of memory 错误),或如果myisamchk 崩溃,到阶段3。
阶段2 :简单安全的修复
注释:如果想更快地进行修复,当运行myisamchk 时,你应将sort_buffer_size 和Key_buffer_size 变量的值设置为可用内存的大约25%。
首先,试试myisamchk -r -q tbl_name(-r -q 意味着“ 快速恢复模式”)。这将试图不接触数据文件来修复索引文件 。如果数据文件包含它应有的一切内容和指向数据文件内正确地点的删除连接,这应该管用并且表可被修复 。开始修复下一张表 。否则 , 执行下列过程:
在继续前对数据文件进行备份 。使用myisamchk -r tbl_name(-r 意味着“ 恢复模式”)。这将从数据文件中删除不正确的记录和已被删除的记录并重建索引文件 。
如果前面的步骤失败 , 使用myisamchk --safe-recover tbl_name。安全恢复模式使用一个老的恢复方法,处理常规恢复模式不行的少数情况( 但是更慢)。如果在修复时,你得到奇怪的错误( 例如out of memory 错误),或如果myisamchk 崩溃,到阶段3。
阶段3 :困难的修复
只有在索引文件的第一个16K 块被破坏,或包含不正确的信息,或如果索引文件丢失,你才应该到这个阶段 。在这种情况下 , 需要创建一个新的索引文件 。按如下步骤操做:
把数据文件移到安全的地方 。使用表描述文件创建新的( 空) 数据文件和索引文件:
shell mysql db_name
mysql SET AUTOCOMMIT=1;
mysql TRUNCATE TABLE tbl_name;
mysql quit
如果你的MySQL 版本没有TRUNCATE TABLE,则使用DELETE FROM tbl_name。将老的数据文件拷贝到新创建的数据文件之中 。回到阶段2。现在myisamchk -r -q 应该工作了 。你还可以使用REPAIR TABLE tbl_name USE_FRM ,将自动执行整个程序 。
阶段4 :非常困难的修复
只有.frm 描述文件也破坏了,你才应该到达这个阶段 。这应该从未发生过,因为在表被创建以后,描述文件就不再改变了 。
从一个备份恢复描述文件然后回到阶段3。你也可以恢复索引文件然后回到阶段2。对后者,你应该用myisamchk -r 启动 。
如果你没有进行备份但是确切地知道表是怎样创建的,在另一个数据库中创建表的一个拷贝 。删除新的数据文件,然后从其他数据库将描述文件和索引文件移到破坏的数据库中 。这样提供了新的描述和索引文件,但是让.MYD 数据文件独自留下来了 。回到阶段2并且尝试重建索引文件 。
怎样在MySQL中使用检查约束?这是一项新功能,用于指定在插入或更新到一行之前检查值的条件 。如果表的任何行的搜索条件的结果为 FALSE,则约束可能返回错误(但如果结果为 UNKNOWN 或 TRUE,则约束不会返回错误) 。此功能开始在 MySQL 8.0.16 上运行,在以前的版本中,我们可以创建它,但它不起作用 , 这意味着支持语法,但不起作用 。要牢记的使用规则:
推荐阅读
- 直播卖货本地,直播卖货本地人可以买吗
- 战舰世界闪击战ios模拟器,战舰世界闪击战端游怎么下载
- 极品赛车的小游戏是什么,极品赛车下载官方版
- 开传奇用什么海外服务器,开传奇用什么海外服务器
- vbnet截图 vba截图代码
- sqlserver2008物化视图,物化视图mysql
- 基于css二手商品网站毕业设计,二手交易平台毕业设计
- 直播带货的氛围是什么,直播带货的三大优势
- c语言制作函数库 c语言的库函数源码