Applicable to:
- Plesk for Linux
- Plesk for Windows
Symptoms
Plesk is not accessible with one of the following error messages in a web-browser:
PLESK_INFO: DB query failed: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'psa.<table_name>' doesn't exist, query was: DESCRIBE `sessions`
PLESK_INFO: ERROR: PleskMainDBException
MySQL query failed: Unknown column 'id' in 'field list'
PLESK_INFO: Call to a member function getSkinUrl() on null (SkinUrl.php:18)
PLESK_INFO: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'psa.sessioncontexts' doesn't exist
PLESK_INFO: ERROR: Plesk\Exception\Database: DB query failed: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'psa.sessions' doesn't exist, query was: DESCRIBE `sessions`
PLESK_INFO: DB query failed: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'psa.misc' doesn't exist, query was: replace into misc (param, val) values(:param, :val)
Cause
The Plesk 'psa' database is corrupted.
Resolution
Restore the Plesk 'psa' system database from the Plesk daily dump.
-
Connect to the Plesk server via SSH.
-
Switch to the directory with daily dumps:
# cd /var/lib/psa/dumps
-
List all available Plesk daily dumps:
# ls -l mysql.daily*
-rw------- 1 root root 236253 Feb 3 01:51 mysql.daily.dump.0.gz
-rw------- 1 root root 229653 Feb 2 01:48 mysql.daily.dump.1.gz
-rw------- 1 root root 222485 Feb 1 01:56 mysql.daily.dump.2.gz- where
mysql.daily.dump.0.gz
is the most recent daily dump.
- where
-
Restore the 'psa' database from the most recent daily dump. In this example, the 'psa' database is being restored from
mysql.daily.dump.0.gz
:# zcat mysql.daily.dump.0.gz | sed -n '/-- Current Database: `psa`/,/-- Current Database:*/p' | MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -uadmin --default-character-set=utf8
Note: Remove tables from /var/lib/mysql/psa if the same set of tables is mentioned in the error all the time
-
If restoration of the
psa
database fails with the below errorERROR 1265 (01000) at line 3375: Data truncated for column 'event_type' at row 2362
To bypass this, open the dump with "vi" editor and removed data for table exp_event which contains column event_type.
-
-
Access Plesk.
If Plesk is still not accessible, try to restore the 'psa' database from an earlier Plesk daily dump:
# zcat mysql.daily.dump.1.gz | sed -n '/-- Current Database: `psa`/,/-- Current Database:*/p' | MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -uadmin --default-character-set=utf8
-
Connect to the Plesk server via RDP.
-
Switch to the directory with daily dumps:
C:\> cd %plesk_dir%Mysql\Backup
-
List all available Plesk daily dumps with the 'psa' database sorted by date (newest first):
C:\> dir psa* /O:-D
Directory of C:\Program Files (x86)\Plesk\MySQL\Backup
03/29/2019 08:33 PM 502,879 psa-20190329203301.sql
03/28/2019 08:33 PM 468,888 psa-20190328203301.sql
03/27/2019 08:33 PM 468,888 psa-20190327203301.sql -
Restore the 'psa' database from the latest available daily dump. In this example, we are restoring the dump from 03/29/2019:
C:\> plesk db < psa-20190329203301.sql
-
Access Plesk.
Comments
3 comments
I've got this error when trying to restore the database
ERROR 1813 (HY000) at line 15: Tablespace for table '`psa`.`APSApplicationItems`' exists. Please DISCARD the tablespace before IMPORT
Moving out all content from psa folder sort of solve it. Is that the correct way to solve it?
Sharul, error might have different reason behind, thus hard to evaluate your solution.
What I'd like to recommend is please check MySQL:
MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqlcheck -u admin --all-databases
And if you'll see errors about non-existing databases or others you might need to do a recovery:
https://support.plesk.com/hc/en-us/articles/213939865-How-to-fix-InnoDB-corruption-cases-for-the-MySQL-databases-on-Plesk-for-Linux-
I get ERROR 1045 (28000): Access Denied for user 'admin'@'localhost' (using password: YES) when I execute the zcat mysql.daily.dump ....
Please help.
My problem:
Please sign in to leave a comment.