#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
-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
install plugin innodb soname 'ha_innodb.so';
3。 Backup
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 サイトの他の関連記事を参照してください。