Tabella corrotta

Ho riscontrato, purtroppo quando ormai fosse tardi per un ripristino da backup, una tabella corrotta in uno dei database di mysql.

Me ne sono accorto perche` e` comparso un'errore (appunto) durante il backup.

Per ripristinare la situazione (e` andata fortunatamente  bene) ho eseguito una serie di passaggi.

Ho editato "/etc/mysql/my.cnf", aggiungendo alla sezione:

[mysqld]

 

la riga:

innodb_force_recovery = 3

 

Poi ho riavviato mysql:

systemctl restart mysql

 

ed eseguito il check, per trovare l'errore:

mysqlcheck --password=pswd --all-databases

 

Ho eliminato la tabella:

mysql --password=pswd
mysql> use tinyrss;
mysql> SET FOREIGN_KEY_CHECKS=0;
mysql> drop table ttrss_entries;
mysql> SET FOREIGN_KEY_CHECKS=1;

 

A questo punto ho (per puro caso) scoperto che la struttura del database con le istruzioni sono memoprizzate in un file del programma "/var/www/tt-rss/schema/ttrss_schema_mysql.sql".

Sono entrato di nuovo in mysql, ho selezionato il database, poi ho copiato ed incollato l'istruzione per generare nuovamente la tabella che avevo eliminato:

mysql --password=pswd
mysql> use tinyrss;
mysql> create table ttrss_entries (id integer not null primary key auto_increment,
        title text not null,
        guid varchar(255) not null unique,
        link text not null,
        updated datetime not null,
        content longtext not null,
        content_hash varchar(250) not null,
        cached_content longtext,
        no_orig_date bool not null default 0,
        date_entered datetime not null,
        date_updated datetime not null,
        num_comments integer not null default 0,
        plugin_data longtext,
        lang varchar(2),
        comments varchar(250) not null default '',
        author varchar(250) not null default '') ENGINE=InnoDB DEFAULT CHARSET=UTF8;