468x60

giovedì 8 settembre 2016

ripristino MySQL corrotto

Per ripristinare una istanza di MySQL corrotta ho dovuto fare nel seguente modo:

  1. Se non è disponibile un dump dei dati, cercare di fare avviare il servizio di MySQL
    1. Se non si avvia, modificare my.cnf aggiungendo innodb_force_recovery = 6, sotto [mysqld], partendo da un valore basso fino ad un massimo di 6
    2. Eseguire il dump di tutto: mysqldump --force --compress --triggers --routines --create-options -uUSERNAME -pPASSWORD --all-databases > /backup/dump.sql
    3. Fermare il database: mysqladmin -uUSERNAME -pPASSWORD shutdown
    4. Rimuovere tutti i file dalla directory dei dati: rm -rf /path/dati/
    5. Ricreare la directory dei dati con permessi 755 ed owner mysql:mysql
  2. Inizializzare il database col comando shell#: mysqld --initialize
  3. Avviare il servizio senza il controllo credenziali: mysqld --skip-grant-tables
  4. Importare i dati col comando shell#: mysql -uroot --compress -p < /backup/dump.sql
  5. Modificare la password di root
    1. # mysql -uroot mysql
    2. $mysql> UPDATE user SET Password=PASSWORD('my_password') WHERE user='root';  oppure se non funziona...
    3. UPDATE user SET authentication_string=password('my_password') WHERE user='root';
    4. $mysql> FLUSH PRIVILEGES;
  6. Riavviare il servizio: service mysql restart
468x60

Cerca su Google

Cerca nel Blog con Google