Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menyelesaikan kemalangan kegagalan kuasa Mysql8

Bagaimana untuk menyelesaikan kemalangan kegagalan kuasa Mysql8

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBke hadapan
2023-05-29 13:20:042021semak imbas

1. Gambaran Keseluruhan

Pelayan pangkalan data Mysql8 yang berdiri sendiri tiba-tiba kehilangan kuasa semasa operasi, menyebabkan pangkalan data ranap dan tidak dapat dimulakan semula.

2. Cari punca

Lihat log ralat menjalankan mysql: WIN-SOTMI68HRV6.err (dalam direktori Data)

InnoDB: End of page dump
InnoDB: Halaman mungkin halaman sistem
2023-02-01T09:31:02.878917Z 0 [Amaran] [MY-010915] [Pelayan] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' dan 'ERRION_FORls_DIVISES' harus digunakan dengan mod ketat. (mysqld 8.0.23) bermula sebagai proses 3496
2023-02-01T09:31:02.923391Z 1 [Sistem] [MY-013576] [InnoDB] Permulaan InnoDB telah bermula.
22023-02-01T09:31:05.966225Z 1 [ERROR] [MY-011972] [InnoDB] Pangkalan data anda mungkin rosak atau anda mungkin telah menyalin fail jadual InnoDB tetapi bukan fail log InnoDB rujuk http:// /dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html untuk maklumat tentang memaksa pemulihan.
2023-02-01T09:31:05.98

InnoDB: Penghujung pembuangan halaman

InnoDB: Halaman mungkin halaman sistem
2023-02-01T11:03:39.767939Z 1 [ERROR] [MY-011906] [InnoDB] Kerosakan halaman pangkalan data pada cakera atau fail gagal membaca halaman [id halaman: space=4294967278, nombor halaman=101]. fail cakera tidak dapat ditemui. Daripada log di atas, kita boleh tahu bahawa ralat berlaku dalam pangkalan data dan tidak boleh dimulakan semula.

InnoDB menggunakan checksum untuk melindungi data, menyimpannya dengan halaman. Apabila InnoDB membaca daripada cakera, ia mengira jumlah semak untuk setiap halaman dan kemudian membandingkannya dengan jumlah semak yang dimuatkan pada cakera. Jika nilainya berbeza, sesuatu mungkin telah berlaku. Untuk mengelakkan kerosakan logik atau fizikal selanjutnya, pelayan MySQL akan menutup InnoDB.

3. Penyelesaian

1. Bagaimana untuk mengetahui punca kerosakan

Tiada penyelesaian universal. Beberapa masalah perkakasan biasa termasuk cakera fizikal atau kegagalan memori, pemacu/pengawal yang rosak dan ralat dalam kernel sistem pengendalian. Berikut ialah beberapa cadangan:

Pada platform Linux, kadangkala menetapkan semula cache halaman boleh menyelesaikan masalah ini:

echo 2 > /proc/sys/vm/drop_caches

Semak log sistem untuk kemungkinan kegagalan perkakasan.

Jika InnoDB ranap pada halaman tertentu setiap kali, selalunya kegagalan cakera fizikal: jalankan diagnostik cakera terperinci untuk OS/perkakasan anda.

Jika ranap sistem adalah rawak dan tidak berulang untuk pertanyaan yang sama, ini mungkin kesalahan RAM: jalankan diagnostik RAM terperinci.

Apabila MySQL dimatikan, adalah berguna untuk menyemak fail InnoDB dengan alat innochecksum.

作者这里故障原因是断电导致数据出现问题,只能重装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,恢复数据库。

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kemalangan kegagalan kuasa Mysql8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam