MySQL: error collation "in use" and table could not be loaded

时间:2016-03-04 17:49:45

标签: mysql wordpress innodb cpanel collation

I have my VPS installed cPanel. Today it suddenly not work, all of Wordpress websites on VPS show the error:

This webpage has a redirect loop
ERR_TOO_MANY_REDIRECTS

and auto redirect to wp-admin/install.php. I log in to phpmyadmin then see some tables have collation "in use" (not "utf8_general_ci" such as normally). Can't be loaded because of error:

#1286 - Unknown storage engine 'InnoDB'".

So how to fix this error? Thanks for help me!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,这个问题引发了,因为你的innoDB被破坏了,所有使用innoDB表的数据库都在使用中。

要解决此问题,您需要按照以下步骤进行操作

要获得100%干净的表空间,您需要使用innodb_force_recovery = 4启动MySQL,使用mysqldump并将其恢复到InnoDB的新实例上(新鲜我的意思是您必须删除ibdata1和所有数据库目录)。

更新:

此时,MySQL以innodb_force_recovery = x(x!= 0)

启动

转储所有数据库:

mysqldump --skip-lock-tables -A> alldb.sql

检查MySQL保存文件的位置(在我的情况下是' s / var / lib / mysql /):

mysql -NBe" SELECT @@ datadir"

的/ var / lib中/ MySQL的/ 停止MySQL

mysqladmin关闭

将旧的MySQL文件移到安全的地方

mv / var / lib / mysql /var/lib/mysql.old

创建新的系统数据库

mkdir / var / lib / mysql

mysql_install_db的

启动MySQL

/etc/init.d/mysql start

恢复转储

mysql< alldb.sql

如果数据库很大,恢复可能需要很长时间。

在这种情况下,另一个技巧可能会起作用。在每个InnoDB表上运行ALTER TABLE ... ENGINE INNODB。它将重建所有InnoDB索引,因此错误将消失。

+++++++++++++++++++++++++++++++++++++++++++++++ ++

另一个解决方案是从备份恢复数据库。

首先,您需要删除ibdata1文件

cd / var / lib / mysql

rm -f ibdata1

然后使用以下命令

逐个恢复所有数据库

mysql -u username -p databasename< backupfile.sql

+++++++++++++++++++++++++++++++++++++++++++++++ +++