ホームページ > データベース > mysql チュートリアル > Mysql8の電源障害クラッシュを解決する方法

Mysql8の電源障害クラッシュを解決する方法

WBOY
リリース: 2023-05-29 13:20:04
転載
1961 人が閲覧しました

1. 概要

スタンドアロンの Mysql8 データベース サーバーが動作中に突然電源を失い、データベースがクラッシュして再起動できなくなりました。

2. 理由を見つけます

mysql 実行エラー ログを表示します: WIN-SOTMI68HRV6.err (データ ディレクトリ内)

InnoDB: ページの終わりダンプ
InnoDB: ページはシステム ページである可能性があります
2023-02-01T09:31:02.878917Z 0 [警告] [MY-010915] [サーバー] 'NO_ZERO_DATE'、'NO_ZERO_IN_DATE'、および 'ERROR_FOR_DIVISION_BY_ZERO' SQL モードは次のようにする必要があります。厳密モードで使用されます。これらは将来のリリースで厳密モードとマージされます。
2023-02-01T09:31:02.882631Z 0 [システム] [MY-010116] [サーバー] C:\Program Files\MySQL\ MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.23) プロセス 3496
2023-02-01T09:31:02.923391Z 1 [システム] [MY-013576] [InnoDB] InnoDB の初期化が開始されました。
2023-02-01T09:31:05.964384Z 1 [エラー] [MY-011971] [InnoDB] テーブルスペース 'innodb_system' ページ [ページ ID: スペース = 0、ページ番号 = 5] ログ シーケンス番号 3275776865 は将来のものです! 現在のシステム ログ シーケンス番号 3197057036.
2023-02-01T09:31:05.966225Z 1 [エラー] [MY-011972] [InnoDB] データベースが破損しているか、InnoDB テーブルスペースをコピーしたが InnoDB をコピーしていない可能性があります。ログ ファイル。リカバリの強制については、http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html を参照してください。
2023-02-01T09:31:05.98

InnoDB: ページの終わりダンプ
InnoDB: ページはシステム ページである可能性があります
2023-02-01T11:03:39.767939Z 1 [エラー] [MY-011906] [InnoDB] データベース ページが破損していますディスク上、またはページ [ページ ID: スペース = 4294967278、ページ番号 = 101] のファイル読み取りに失敗しました。バックアップから回復する必要がある場合があります。
len 16384; hex

明らかに[エラー]、ディスク ファイルが見つかりません。上記のログから、データベースにエラーが発生し、再起動できないことがわかります。

InnoDB はチェックサムを使用してデータを保護し、データをページとともに保存します。 InnoDB はディスクから読み取るときに、各ページのチェックサムを計算し、それをディスクにロードされたチェックサムと比較します。値が異なる場合は、実際に何か問題が発生している可能性があります。さらなる論理的または物理的損傷を防ぐために、MySQL サーバーは InnoDB をシャットダウンします。

3. 解決策

1. 損傷の原因を突き止める方法

普遍的な解決策はありません。一般的なハードウェアの問題には、物理​​ディスクまたはメモリの障害、ドライブ/コントローラの破損、オペレーティング システム カーネルのエラーなどがあります。以下にいくつかの提案を示します。

Linux プラットフォームでは、ページ キャッシュをリセットすると、この問題が解決される場合があります。

echo 2 > /proc/sys/vm/drop_caches
ログイン後にコピー

システム ログでハードウェア障害の可能性がないか確認してください。
InnoDB が特定のページで毎回クラッシュする場合は、通常は物理ディスクの障害です。OS/ハードウェアの詳細なディスク診断を実行します。
クラッシュがランダムであり、同じクエリに対して繰り返されない場合は、RAM 障害である可能性があります。詳細な RAM 診断を実行します。
MySQL がシャットダウンされたら、innochecksum ツールを使用して InnoDB ファイルをチェックすると便利です。

作者这里故障原因是断电导致数据出现问题,只能重装Mysql。

2.如何从损坏中恢复

最重要的是执行详细的硬件诊断,以消除问题扩散的机会。如果操作系统I / O缓存是磁盘读损坏的原因,重置缓存或重新启动操作系统应有助于消除当前的问题,数据库可能会重新运作。
有时唯一的解决办法是在有效恢复模式下备份数据。

笔者后面尝试强制启动,可以启动Mysql,但是数据库只能读不能写,通过日志又找不到损坏的数据表,无奈,只能先备份数据库,然后重装Mysql。

修改数据库,一直报错:

running in read_only mode 1836

将mysql改为强制启动:

在my.ini中【mysqld】节点下加上

innodb_force_recovery=0
ログイン後にコピー

然后对数据库进行备份。
备份方式:

一、数据库备份

第一种:(cmd窗口使用)
在命令提示符用mysqldump命令行备份数据库。
命令格式
mysqldump -u用户名 -p 数据库名 > 保存名.sql
范例:

mysqldump -uroot -p dataname > d:\data.sql
ログイン後にコピー

(导出数据库dataname到data.sql文件)
提示输入密码时,输入该数据库用户名的密码。

第二种:指定导出备份编码

mysqldump -u root -p密码 --default-character-set=数据编码 数据库名称> data.sql
ログイン後にコピー

案例:

mysqldump -u root -p123456 --default-character-set=utf8 discuss_chi>d:/data.sql
ログイン後にコピー

mySQL数据库在windows环境下备份与恢复:

二,恢复数据库,一共二种方式。

第一种;定义还原编码类型(cmd窗使用)
定义编码导入:

mysql -u root -p --default-character-set=utf8 -f dataname<d:/dis.sql
ログイン後にコピー

如果乱码使用二进导入

mysql -u root -p --default-character-set=binary -f dataname<d:/dis.sql
ログイン後にコピー

第二种:
source 命令(mysql控制台窗口使用)
进入mysql数据库控制台,

如在运行中输入:mysql -u root -p

mysql>use databasename;
ログイン後にコピー

1、确定数据库默认编码,比如编码为gbk,将读入途径编码同样设为gbk,命令为:
set names gbk;(导入数据出现乱码的时候用平常不用)
2、然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source d:\data.sql;
ログイン後にコピー

备份后,重装Mysql,恢复数据库。

以上がMysql8の電源障害クラッシュを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート