Heim > Datenbank > MySQL-Tutorial > So beheben Sie einen Mysql8-Stromausfall-Absturz

So beheben Sie einen Mysql8-Stromausfall-Absturz

WBOY
Freigeben: 2023-05-29 13:20:04
nach vorne
1960 Leute haben es durchsucht

1. Übersicht

Der eigenständige Mysql8-Datenbankserver verlor während des Betriebs plötzlich die Stromversorgung, wodurch die Datenbank abstürzte und nicht neu gestartet werden konnte.

2. Finden Sie den Grund

Überprüfen Sie das MySQL-Lauffehlerprotokoll: WIN-SOTMI68HRV6.err (unter dem Datenverzeichnis)

#🎜🎜 #InnoDB: End-of-Page-Dump

InnoDB: Seite könnte eine Systemseite sein
2023-02-01T09:31:02.878917Z 0 [Warnung] [MY-010915] [Server] 'NO_ZERO_DATE', ' Die SQL-Modi „NO_ZERO_IN_DATE“ und „ERROR_FOR_DIVISION_BY_ZERO“ sollten mit dem strikten Modus verwendet werden. Sie werden in einer zukünftigen Version mit dem strikten Modus zusammengeführt.
2023-02-01T09:31:02.882631Z 0 [System] [MY-010116] [Server] C:ProgrammeMySQLMySQL Server 8.0binmysqld.exe (mysqld 8.0.23) startet als Prozess 3496
2023-02-01T09:31:02.923391Z 1 [System] [MY-013576] [InnoDB] InnoDB-Initialisierung hat begonnen .
2023-02-01T09:31:05.964384Z 1 [FEHLER] [MY-011971] [InnoDB] Tablespace 'innodb_system' Seite [Seiten-ID: Leerzeichen=0, Seitennummer=5] Protokollsequenznummer 3275776865 liegt in der Zukunft! Aktuelle Systemprotokoll-Sequenznummer 3197057036 InnoDB-Tablespace, aber nicht die InnoDB-Protokolldateien. Informationen zum Erzwingen der Wiederherstellung finden Sie unter http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.
2023-02 -01T09 :31:05.98

InnoDB: End-of-Page-Dump

InnoDB: Seite kann eine Systemseite sein

2023-02-01T11:03:39.767939Z 1 [FEHLER] [MY -011906] [InnoDB] Beschädigung der Datenbankseite auf der Festplatte oder Fehler beim Lesen der Datei der Seite [Seiten-ID: space=4294967278, Seitennummer=101]. Möglicherweise müssen Sie eine Wiederherstellung anhand einer Sicherung durchführen.
len 16384; hex # 🎜🎜#

Offensichtlich [FEHLER] kann die Festplattendatei nicht gefunden werden. Aus dem obigen Protokoll können wir erkennen, dass in der Datenbank ein Fehler aufgetreten ist und nicht neu gestartet werden kann.

InnoDB verwendet Prüfsummen zum Schutz von Daten und speichert sie auf der Seite. Wenn InnoDB von der Festplatte liest, berechnet es eine Prüfsumme für jede Seite und vergleicht sie dann mit der auf die Festplatte geladenen Prüfsumme. Wenn die Werte unterschiedlich sind, könnte tatsächlich etwas schief gelaufen sein. Um weiteren logischen oder physischen Schaden zu verhindern, fährt der MySQL-Server InnoDB herunter.

3. Lösung

1 So finden Sie heraus, warum der Schaden aufgetreten ist

Es gibt keine universelle Lösung. Zu den häufigsten Hardwareproblemen gehören physische Festplatten- oder Speicherfehler, beschädigte Laufwerke/Controller und Fehler im Betriebssystemkernel. Hier sind einige Vorschläge:

Auf Linux-Plattformen kann manchmal das Zurücksetzen des Seitencaches dieses Problem lösen:

echo 2 > /proc/sys/vm/drop_caches
Nach dem Login kopieren

Überprüfen Sie das Systemprotokoll auf mögliche Hardwarefehler.

Wenn InnoDB jedes Mal auf einer bestimmten Seite abstürzt, ist dies in der Regel ein physischer Festplattenfehler: Führen Sie eine detaillierte Festplattendiagnose für Ihr Betriebssystem/Ihre Hardware durch.

Wenn der Absturz zufällig ist und sich bei derselben Abfrage nicht wiederholt, liegt möglicherweise ein RAM-Fehler vor: Führen Sie eine detaillierte RAM-Diagnose durch.

Wenn MySQL heruntergefahren ist, ist es hilfreich, die InnoDB-Datei mit dem innochecksum-Tool zu überprüfen.

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

2.如何从损坏中恢复

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

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

修改数据库,一直报错:

running in read_only mode 1836

将mysql改为强制启动:

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

innodb_force_recovery=0
Nach dem Login kopieren

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

一、数据库备份

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

mysqldump -uroot -p dataname > d:\data.sql
Nach dem Login kopieren

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

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

mysqldump -u root -p密码 --default-character-set=数据编码 数据库名称> data.sql
Nach dem Login kopieren

案例:

mysqldump -u root -p123456 --default-character-set=utf8 discuss_chi>d:/data.sql
Nach dem Login kopieren

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

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

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

mysql -u root -p --default-character-set=utf8 -f dataname<d:/dis.sql
Nach dem Login kopieren

如果乱码使用二进导入

mysql -u root -p --default-character-set=binary -f dataname<d:/dis.sql
Nach dem Login kopieren

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

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

mysql>use databasename;
Nach dem Login kopieren

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

mysql>source d:\data.sql;
Nach dem Login kopieren

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

Das obige ist der detaillierte Inhalt vonSo beheben Sie einen Mysql8-Stromausfall-Absturz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage