Восстановление InnoDB.

Восстановление InnoDB.

Сделать копию каталога с БД MySQL.

Прописать в /etc/my.cnf innodb_force_recovery = 1
Если эффекта нет — постепенно увеличивать до 6.
При значении 6 обычно MySQL стартует, после этого делаются дампы баз ( mysqldump ).

Останавливаем MySQL:
# systemctl stop mysql

Удаляем содержимое /var/lib/mysql
Устанавливаем innodb_force_recovery = 0

Выполняем инициализацию в зависимости от версии:
# mysql_install_db
или
# mysqld --initialize

Стартуем MySQL:
# systemctl start mysql

Устанавливаем новый пароль для пользователя root MySQL.
В /etc/my.cnf добавляем строку skip-grant-tables

# systemctl restart mysql
# mysql

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword') WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

Убираем из конфига skip-grant-tables и рестартуем MySQL.

При ошибке ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. понадобится сбросить пароль:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

После этого восстанавливаем базы из дампов.

Nicko

Добавить комментарий