MySQL Error number: MY-012245; Symbol: ER_IB_MSG_420; SQLSTATE: HY000

文档解释

Error number: MY-012245; Symbol: ER_IB_MSG_420; SQLSTATE: HY000

Message: %s

错误说明

MySQL 错误 MY-012245(ER_IB_MSG_420)属于 InnoDB 存储引擎的错误,表示『在执行 InnoDB 时出现意外的情况』。

常见案例

在表创建过程中,触发 ER_IB_MSG_420:

> CREATE TABLE customers (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), email VARCHAR(50), tel_no VARCHAR(50), PRIMARY KEY (id);

MySQL 日志文件中出现 ER_IB_MSG_420:

[ERROR in innodb_data_dict.cc line 2605] Innodb encountered an unexpected situation error 420

解决方法

尽管 ER_IB_MSG_420 的出现代表着 InnoDB 无法正常工作,它并不能确保数据安全,因此建议优先确认数据安全性,之后再执行修复。

1. 尽快备份数据

确保没有受到影响的 MySQL 服务器,检查是否有未提交的事务,以及备份数据库:

# mysqldump -u username -p databasename > dump.sql

2. 清理不必要的日志数据

删除现存的 ib_logfile* 日志文件:

# rm ib_logfile*

3. 重新创建日志文件

重新创建 ib_logfile* 日志文件:

# innodb_log_recreate

4. 重启 MySQL

在执行重建前,最好确保已经重启 MySQL 服务:

# service mysql restart

5. 重新创建 InnoDB

在检查 ib_logfile* 这些文件是完备的之后,执行重建:

# innodb_force_recovery

重新创建步骤可能需要一段时间,但是只要这个过程正常完成,就能解决掉 MY-012245(ER_IB_MSG_420)这个错误。

你可能感兴趣的