Восстановление 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';
После этого восстанавливаем базы из дампов.
Добавить комментарий