Plesk is not available: Got error -1 from storage engine

Created:

2016-11-16 12:39:54 UTC

Modified:

2017-08-16 16:02:23 UTC

1

Was this article helpful?


Have more questions?

Submit a request

Plesk is not available: Got error -1 from storage engine

Applicable to:

  • Plesk 10.x for Windows
  • Plesk 10.x for Linux
  • Plesk 11.x for Windows
  • Plesk 11.x for Linux
  • Plesk 12.0 for Linux
  • Plesk 9.x for Linux

Symptoms

Plesk for Windows

A blank page is shown on the Plesk login page. The following message occurs in the log file:

%plesk_dir%\\admin\\logs\\php_error.log
--->8---
PHP Fatal error: Call to a member function getContext() on a non-object in C:\\Program Files (x86)\\Parallels\\Plesk\\admin\\plib\\Navigation.php on line 59
---8<---

Checking the Plesk database for broken tables with a command like the one below, where "PASSWORD" is the Plesk admin password:

%plesk_dir%\\MySQL\\bin>mysqlcheck -uadmin  -p<PASSWORD> -P8306 psa
ERROR 1030 (HY000): Got error 1 from storage engine

Plesk for Linux

https://123.123.123.123:8443/
--->8---
ERROR: Zend_Db_Statement_Exception
SQLSTATE[HY000]: General error: 1030 Got error -1 from storage engine
---8<---

Also, the password of the admin user cannot be retrieved:

~# /usr/local/psa/bin/admin --show-password
SQLSTATE[HY000]: General error: 1030 Got error -1 from storage engine
~#

Cause

The Plesk MySQL database is broken or force recovery option is enabled.

Resolution

First of all, make sure that innodb_force_recovery option is disabled in my.cnf/my.ini

Plesk for Windows

  1. Check that "%plesk_dir%/MySQL/my.ini does not contain innodb_force_recovery option :

  2. If it is enabled, switch innodb_force_recovery off by changing the value to '0' or removing the string:

  3. Restart MySQL:

Plesk for Linux

  1. Check /etc/my.cnf and make sure innodb_force_recovery is not set:

    # grep 'force_recovery' /etc/my.cnf
    innodb_force_recovery = 5
  2. If it is enabled, switch innodb_force_recovery off by changing the value to '0':

    # grep 'force_recovery' /etc/my.cnf
    innodb_force_recovery = 0
  3. Restart mysql:

    # /etc/init.d/mysqld restart

If there is no such option and MySQL still cannot be started, restore the database from a backup:

Windows:

%plesk_dir%\\MySQL\\bin>mysql.exe -uadmin -P8306 -p<PASSWORD> psa < /PATH/TO/VALID/PSA.dump.sql

Daily database dumps location can be found:

%plesk_dir%"\\Mysql\\Backup

Linux:

# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin psa < /PATH/TO/VALID/PSA.dump.sql

Daily database dumps location can be found:

# grep dump /etc/psa/psa.conf
DUMP_D /var/lib/psa/dumps

If the steps above did not help, refer to the KB article How to fix InnoDB corruption cases for the MySQL database .

Have more questions? Submit a request
Please sign in to leave a comment.