Mysql
 sql >> Database >  >> RDS >> Mysql

Mysql/InnoDB smettono di funzionare su Linode Server

L'ho appena avuto, inizialmente presentandosi come un "mysql che si rigenera troppo velocemente " errore nel dmesg registri.

Da lettura altrove L'ho ricondotto a ciò che hai trovato e penso che abbia capito che questo indica una sorta di corruzione nei file di metadati di InnoDB. InnoDB fa cose come garantire l'integrità di transazione/rollback e l'integrità della chiave primaria-estranea. Questo è ciò di cui ti avverte l'errore di "mancata corrispondenza del checksum".

Non dici come stai avviando mysqld, ma forse stai usando qualche variante su /etc/init.d/mysqld start o service mysqld start . Esegui invece il demone esplicitamente come comando:

sudo /usr/sbin/mysqld --innodb_force_recovery 0

e, finché sai perché lo stai facendo, incrementa gradualmente il valore zero di --innodb_force_recovery fino all'inizio del processo.

Avviso: Il innodb_force_recovery parametro determina quanto seriamente mysqld proverà a "correggere" l'errore di checksum nella memoria di InnoDB. Quindi puoi peggiorare il problema o aver bisogno di una successiva ricostruzione dell'indice, se esegui la correzione forzata con un numero alto qui, perché InnoDB farà cose sempre più drastiche per cercare di risolversi.

Ogni volta che non riesci a riavviare mysqld con un numero particolare ad es. 2 , dovresti cercare i messaggi di errore che ricevi prima di incrementarlo a 3 così puoi essere sicuro di fare la cosa giusta. Non sono un esperto di ogni errore che potresti ricevere, quindi non posso fornire feedback per ogni condizione eccezionale:tutto quello che sto dicendo è, usa --innodb_force_recovery con cura!