gpt4 book ai didi

MySQL 表被标记为崩溃

转载 作者:可可西里 更新时间:2023-11-01 06:42:03 25 4
gpt4 key购买 nike

我对 MySQL 数据库相当陌生。我反复看到 MySQL 的错误,说该表被标记为已崩溃,应该进行修复。但是我可以使用命令 myisamchk 修复崩溃的表。顺便说一下,我在 MySQL 中使用 MYISAM 数据库引擎。

我只是想知道在什么情况下数据库表会崩溃,以及如何防止它再次发生?

我正在使用 mysqltcl 库 (3.0) 从 Tcl (8.5) 脚本连接到 MySQL(5.0) 数据库。

最佳答案

MyISAM 表很容易崩溃。每个表中都有标题信息,用于跟踪 MyISAM 表有多少个打开的文件句柄。

如果 mysqld 崩溃,任何具有打开文件句柄的 MyISAM 表都没有机会在每个文件句柄关闭时减少文件句柄计数。因此,如果一个新的文件句柄打开一个 MyISAM 表(.MYD 文件)并且 mysqld 发现 MyISAM 表认为打开的文件句柄数与 MyISAM 表实际打开的文件句柄数不匹配,则该表是宣布坠毁。

有四 (4) 种方法可以处理此问题:

方法 #1:设置自动 MyISAM 修复

查看我的帖子 https://dba.stackexchange.com/a/15079/877关于如何在 MySQL 重启时进行设置(2012 年 3 月 15 日)

方法#2:使用 InnoDB 而不是 MyISAM

InnoDB 在存储引擎的初始化中内置了崩溃恢复功能。 MyISAM 没有

方法#3:使用 Aria 而不是 MyISAM

Aria 是 MariaDB 的 MyISAM 替代品。它具有针对单个表的崩溃恢复机制。

方法#4:不要在 mysqld 上杀死 -9

如果 mysqld 有意或无意地崩溃,所有打开的 MyISAM 表的头信息将使它们进入崩溃状态。避免必须手动终止 mysqld。

关于MySQL 表被标记为崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11869377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com