Article ID: 6586, created on May 25, 2012, last review on Mar 31, 2016

  • Applies to:
  • Plesk

Sintomi

1) Parallels Plesk Panel mostra il seguente messaggio di errore:

ERRORE: PleskMainDBException
MySQL query failed: Incorrect information in file: './psa/misc.frm'

0: /usr/local/psa/admin/plib/common_func.php3:211
        db_query(string 'select param, val from misc')
1: /usr/local/psa/admin/plib/common_func.php3:490
        get_param(string 'login_timeout')
2: /usr/local/psa/admin/plib/class.Session.php:120
        Session->Session()
3: /usr/local/psa/admin/auto_prepend/auth.php3:155


2) mysqldump e mysqlcheck non riusciti con messaggi di errore che informano sull'inesistenza di una tabella. Per esempio:

~# mysqlcheck -uadmin -p`cat /etc/psa/.psa.shadow` psa
psa.BackupTasks
error    : Impossibile trovare file: 'BackupTasks.MYD' (errno: 2)
psa.BackupsObjects
error    : Can't find file: 'BackupsObjects.MYD' (errno: 2)
psa.BackupsRunning
error    : Incorrect information in file: './psa/BackupsRunning.frm'
psa.BackupsScheduled
error    : Incorrect information in file: './psa/BackupsScheduled.frm'
psa.BackupsSettings
...


3) Una tabella non può essere consultata correttamente con le istruzioni "SELECT". Per esempio:

mysql> select * from psa.misc;
ERROR 1033 (HY000): Incorrect information in file: './psa/misc.frm'

mysql>


4. La tabella non può essere riparata perché il motore InnoDB non supporta il supporto di riparazione.

mysql> repair table misc;
+-------------------------+--------+----------+---------------------------------------------------------+
| Table                   | Op     | Msg_type | Msg_text                                                |
+-------------------------+--------+----------+---------------------------------------------------------+
| psa.APSApplicationItems | repair | note     | The storage engine for the table doesn't support repair |
+-------------------------+--------+----------+---------------------------------------------------------+
1 row in set (0.01 sec)

mysql>

Causa

Si è verificato un errore nel motore del database InnoDB. 

Risoluzione

Per risolvere il problema, si consiglia di ripristinare il motore InnoDB. Si prega di tenere presente che il ripristino potrebbe non funzionare. In tale caso, si consiglia di ripristinare i database dal backup. Per ripristinare un motore InnoDB si consiglia di eseguire il dump di tutti i database, rimuovere i database e i file InnoDB danneggiati, creare nuovamente un motore mysql di base e ripristinare i database dal dump.

Usare le seguenti istruzioni per condurre il ripristino:

1) Arresta mysqld e crea il backup di tutti i file del database presenti in /var/lib/mysql/:

~# /etc/init.d/mysqld stop
~# mkdir /root/mysql_backup
~# cp -r /var/lib/mysql/* /root/mysql_backup/


2) Aggiungi l'opzione innodb_force_recovery alla sezione [mysqld] del file di configurazione MySQL. Questa opzione ti permetterà di avviare mysql e creare un dump del database. Per esempio, in /etc/my.cnf:

 /etc/my.cnf
---8<---
[mysqld]
innodb_force_recovery = 4
--->8---


NOTA: È possibile aumentare l'opzione da 1 a 2, 3 o 6, fino ad ottenere un dump corretto. Visualizzare i dettagli qui.

3) Avvia il servizio mysqld:

~# /etc/init.d/mysqld start

4) Crea un dump di tutti i database, per esempio:

~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` -A > dump.sql

Se il dump non è riuscito e presenta errori (per esempio, il messaggio di errore: "Informazione incorretta nel file: './psa/APSApplicationItems.frm' when using LOCK TABLES"), prova ad aumentare innodb_force_recovery e di eseguire il dump dei database nuovamente.

5) Quindi crea nuovamente il database principale "mysql" e il motore InnoDB . A tale fine, arresta mysqld:

~# /etc/init.d/mysqld stop

6) Rimuovi il contenuto di /var/lib/mysql/. (Accertati di avere tutti i dump attuali o una copia recente della directory salvata nel backup nella sezione 1):

~# rm -rf /var/lib/mysql/*

7) Rimuovi l'opzione innodb_force_recovery in /etc/my.cnf.

8) Avvia mysqld:

~# /etc/init.d/mysqld start

In questo modo, verrà creato un database MySQL principale "mysql" e un database del motore InnoDB . Sarà possibile vedere che i file del database sono stati creati in /var/lib/mysql/. Nonostante, tieni presente che soltanto una configurazione MySQL predefinita è stata creata nuovamente. Tutti i database personalizzati devono essere ripristinati dal dump.

9) Ripristina i database dal dump:

~# mysql -uadmin -p`cat /etc/psa/.psa.shadow` < dump.sql

Se il danneggiamento non può essere ripristinato con il valore più alto di innodb_force_recovery e il dump non è stato creato, allora i database devono essere ripristinati dal backup.

Ogni giorno, un backup dei database di Parallels Plesk Panel viene salvato sulla directory di backup, DUMP_D. Per esempio:

~# ls -l /var/lib/psa/dumps
total 1444
-rw------- 1 root   root   141960 Aug  8 01:03 mysql.daily.dump.0.gz
-rw------- 1 root   root   141925 Aug  7 01:03 mysql.daily.dump.1.gz
-rw------- 1 root   root   141883 Aug  6 01:03 mysql.daily.dump.2.gz
-rw------- 1 root   root   141990 Aug  5 01:04 mysql.daily.dump.3.gz
-rw------- 1 root   root   142114 Aug  4 01:03 mysql.daily.dump.4.gz
-rw------- 1 root   root   142113 Aug  3 01:03 mysql.daily.dump.5.gz
-rw------- 1 root   root   142350 Aug  2 01:03 mysql.daily.dump.6.gz
-rw------- 1 root   root   143188 Aug  1 01:03 mysql.daily.dump.7.gz
-rw------- 1 root   root   143208 Jul 31 01:03 mysql.daily.dump.8.gz
~#


Usa il seguente comando per ripristinare il database dall'ultimo backup mysql.daily.dump.0.gz:

~# zcat /var/lib/psa/dumps/mysql.daily.dump.0.gz | mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa

Informazioni aggiuntive

È possibile ottenere timeout durante il ripristino dei database. Aggiungi l'opzione wait_timeout a /etc/my.cnf:

/etc/my.cnf
---8<---
[mysqld]
wait_timeout = 1800
--->8---


e riavvia il servizio mysqld :

~# /etc/init.d/mysqld restart

Informazioni aggiuntive

Leggere anche l'articolo Parallels Plesk Panel non può essere aperto. Errore "MySQL query failed: Incorrect information in file: './psa/misc.frm'"

56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c caea8340e2d186a540518d08602aa065 e0aff7830fa22f92062ee4db78133079 400e18f6ede9f8be5575a475d2d6b0a6

Email subscription for changes to this article
Save as PDF