mysql innodb例外を処理する方法

WBOY
リリース: 2023-04-17 21:01:06
転載
1759 人が閲覧しました

mysql innodb例外を処理する方法
#1. ロールバックして mysql を再インストールします。

このデータを他の場所からインポートする際の問題を避けるために、まず再インストールします。現在のデータベース データベース ファイル (/var/lib/mysql/location) のバックアップを作成します。次に、Percona サーバー 5.7 パッケージをアンインストールし、元の 5.1.71 パッケージを再インストールして、mysql サービスを開始したところ、不明/サポートされていないテーブル タイプ: innodb が表示され、正常に開始できませんでした。

110509 12:04:27 InnoDB: Initializing buffer pool, size = 384.0M
110509 12:04:27 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 157286400 bytes!
110509 12:04:27 [ERROR] Plugin 'InnoDB' init function returned error.
110509 12:04:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
110509 12:04:27 [ERROR] Unknown/unsupported table type: innodb
110509 12:04:27 [ERROR] Aborting
110509 12:04:27 [Note] /usr/sbin/mysqld: Shutdown complete
ログイン後にコピー

/var/lib/mysql/ ディレクトリを削除し、データベース サービスを再起動して初期化します。正常であることがわかります。Show エンジンは innodb エンジンを見つけることができます。次に、データベースを停止し、以前にバックアップした /var/lib/mysql/ ディレクトリの内容を現在の場所の内容で上書きし、再起動します。また、起動できないことが分かり、エラー内容は以前と同じでした。

/var/lib/mysql ディレクトリの内容の構造は次のとおりです。

-rw-rw---- 1 mysql mysql 10485760 2月 26 18:10 ibdata1
-rw-rw---- 1 mysql mysql 5242880 2月 26 18:10 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 2月 26 17:20 ib_logfile1
drwx------ 2 mysql mysql 4096 2月 26 17:20 mysql
drwx------ 2 mysql mysql 4096 2月 26 17:24 wiki
ログイン後にコピー

wiki ディレクトリはテスト データのライブラリ、ibdata1 ファイルはデータ ファイル、 ib で始まる 2 つのファイルはログ ファイル、mysql ディレクトリにはシステム ライブラリ関連のものが含まれています。初期化したデータを再度使用し、wikiディレクトリとibdata1ファイルを/var/lib/mysqlディレクトリに上書きすると、正常に起動し、正常にログインできるようになります。

2. innodb モジュールを再インストールします

ただし、mysqldump 経由でバックアップすると、不明なテーブル エンジン「Innodb」のプロンプトが表示されます。ログイン後、現在のエンジン タイプをすべて確認し、その中に innodb タイプが存在しないことを確認します。

mysql innodb例外を処理する方法
alter コマンドを使用して、いずれかのテーブルのタイプを MyISAM. に送信したところ、依然としてエラーが報告されていることがわかりました。

mysql innodb例外を処理する方法
find により、/usr/lib64/mysql/plugin/ ディレクトリに ha_innodb_plugin.so ファイルがあることがわかります。 mysql5 の新しいバージョンではオンライン プラグインのインストールがサポートされているという印象があります。実際にサポートされていることを確認するには、次の項目を確認してください:

mysql innodb例外を処理する方法##次のコマンドを使用してロードすると、失敗したことがわかりました:
install plugin innodb soname 'ha_innodb.so';
ログイン後にコピー

3。 Backup

In 次の構成を /etc/my.cnf に追加します。

plugin-load=innodb=ha_innodb_plugin.so
plugin_dir=/usr/lib64/mysql/plugin/
default-storage-engine=InnoDB
ログイン後にコピー

起動がまだ失敗していることがわかりました。 mysql-error.log を確認し、次の内容を見つけます。

InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 7.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html
ログイン後にコピー

公式の forcing-innodb-recovery ページを開くと、innodb_force_recovery パラメーターを指定することで起動と回復を強制できることがわかります。次の内容を /etc/my.cnf に追加します:

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

再起動が成功しました。 mysqldump によるバックアップには問題はなく、バックアップ データを他のホストにインポートすることも正常であることが確認され、テストできます。

これで簡単です。mysql を完全に削除し、Percona サーバー 5.7 を再インストールします。インストール後、データベースを構築し、データを復元し、プログラムを再接続すれば、すべて OK です。

以上がmysql innodb例外を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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