Проверка баз MySQL. Checking for corrupt, not cleanly closed and upgrade needing tables

При запуске сервера MySQL

#service mysql start
[ ok ] Starting MySQL database server: mysqld ..
[info] Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..

Необходимо проверить таблицы, которые были закрыты не корректно и нуждаются в обновлении.

mysql_upgrade --force -u root -p

этой функцией нужно пользоваться при обновлении базы данных MySQL

mysqlcheck --check-upgrade --all-databases --auto-repair -u root -p

Функция mysqlcheck это упрощенная версия myisamchk. Подходит для всех типов хранилища. mysqlcheck нужно запускать при запущенном сервере MySQL. mysqlcheck включает в себя CHECK TABLE, REPAIR TABLE, ANALYZE TABLE, OPTIMIZE TABLE.

—auto-repair — если таблица повреждена автоматически исправляет ее

Для хранилища типа MyISAM используется специальная команда:

myisamchk --recover <path to *.myi>

myisamchk нужно запускать при остановленном сервере MySQL.

myisamchk --safe-recover <path to *.myi>

По-умолчанию служебная таблица mysql создается с типом MyISAM. В Ubuntu эта таблица хранится в директории /var/lib/mysql/mysql/

При остановленном сервере запускаем:

myisamchk --safe-recover /var/lib/mysql/mysql/*.MYI

Запускаем сервер MySQL

# service mysql start
[ ok ] Starting MySQL database server: mysqld already running.

Но было так что все таблички [OK], но сообщение о чеке остаются. Поэтому помогла (вторая) строка (естественно опять же останавливая сервер.)

myisamchk /var/lib/mysql/*/*.MYI
myisamchk -e -r --correct-checksum -n - S /var/lib/mysql/*/*.MYI

 

 

Запись опубликована в рубрике SQL. Добавьте в закладки постоянную ссылку.

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

Войти с помощью: 

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.