一、mysql启动报错信息收集
1、截图
[ERROR] InnoDB: Database page corruption on disk or a failed file read of page [page id: space=0, page number=203]. You may have to recover from a backup. Jun 27 13:30:06 localhost mysqld: 2024-06-27T13:30:06.147472+08:00 0 [Note] InnoDB: Page dump in as
看到这个错误信息,为了应对数据页损坏(corruption),你可以使用innodb_force_recovery 参数来尝试启动 MySQL 服务并进行数据恢复。此错误消息表示 InnoDB 遇到了磁盘上的数据库页损坏或文件读取失败,这通常需要从备份恢复数据。
二、处理步骤
1、选择适当的恢复级别:
你需要根据错误的严重性选择一个 innodb_force_recovery 级别。级别从 1 到 6,值越高,恢复操作越激进。
-
- 1 - 忽略最小的错误。
- 2 - 忽略 redo 日志的应用。
- 3 - 忽略未提交事务的回滚。
- 4 - 不执行插入缓冲的归档。
- 5 - 不执行撤销日志的应用。
- 6 - 启动时忽略大部分错误,仅允许数据读取,不允许任何修改。
2、编辑 MySQL 配置文件:
打开 MySQL 的配置文件,通常在 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf。
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 或 /etc/my.cnf
添加或修改 innodb_force_recovery 选项,如果你选择级别 6,配置如下:
[mysqld] innodb_force_recovery = 6
重启mysql:systemctl restart mysqld
3、导出数据
本次使用mysqldump导出数据时,出现两次报错如下:
报错1:
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table clpm_sample_history at row: 1392687
报错2:
mysqldump: Error 3142: The JSON binary value contains invalid data. when dumping table record at row: 46615
sample_history和record两个表损坏,排除两表进行导出一下(这两个表数据丢失)
mysqldump -u root -p --ignore-table=sample_history --ignore-table=record --all-databases > all_databases_backup.sql
三、新建mysql数据库导入数据
1、新建mysql数据库【安装过程省略】
2、导入数据
登陆数据库:mysql -u root -p
导入数据:source 目录/*.sql