Изучаем MySQL | Урок №33 - Начало

Опубликовано: 29.03.2017

видео Изучаем MySQL | Урок №33 - Начало

SQL запросы. Уровни изолированности транзакций в реляционных базах данных.

Базы данных MySQL бывает падают. С кем не бывает? Движки веб-сайтов при всем этом бранятся ужасными словами в бардовых рамках про пропавшие таблицы. Но не все так жутко. Базы данных на то и сделаны, чтоб все нажитое непосильным трудом не сливалось в Величавое Ничто от очевидной ошибки записи файла либо отключения питания. Лучшим методом для их починки и восстановления данных является, ИМХО, утилита командной строчки - myisamchk. Она заходит в всякую штатную установку MySQL и работает с таблицами типа MyISAM. Работа с файлами базы происходит впрямую, потому ремонт вероятен только при остановленном сервере БД MySQL.



Памятка по резвому ремонту таблиц MyISAM себе и для тех кого внесет на эту страничку из поиска.

Заходим на сервер через терминал. Перебегаем в папку, где MySQL хранит собственный файлы. Поглядеть это можно в файле конфигурации MySQL my.cnf. Довольно нередко это /var/lib/mysql.
cd /var/lib/mysql
Просмотр перечня всех баз
ls
Останавливаем сервер БД, по другому даже при проверке мы получим сообщения о всех текущих блокировках таблиц
service mysql stop либо так /etc/init.d/mysql stop


видеокурс о хостинге FatCow, MySQL (базы данных)

Проверка таблиц данных

Проверка всех баз данных
myisamchk -css */*.MYI
Проверка одной базы данных
myisamchk -css имя_базы/*.MYI
Опцию -c можно опускать, она стоит по дефлоту. Двойная функция s принуждает myisamchk быть очень тихой, грубо говоря, весь собственный многоречивый вывод об исправных таблицах она сливает в /dev/null и выводит на экран только обнаруженные ошибки и предупреждения.


Хотвилс трасса порт акул с машинками меняют в воде цвет распаковка Hot Wheels Sharkpark unboxing

Восстановление данных
Итак, битые таблицы найдены, приступаем к ремонту. Сначала делаем запасную копию тех баз данных, где обнаружены трудности.
tar -czvf имя_базы.tgz имя_базы
Позже дополнительно проверяем отдельные таблицы, имена которых получили на прошлом шаге
myisamchk -с имя_базы/имя_таблицы.MYI
Может быть, вы получите какую-то полезную информацию, но обычно myisamchk просто советует чинить. Чинить, так чинить.
myisamchk -r имя_базы/имя_таблицы.MYI
Достаточно нередко утилита не может этого сделать, тогда пробуем другой режим:
myisamchk -o имя_базы/имя_таблицы.MYI
Если все OK, то запускаем сервер и ваши веб-сайты заработают опять
service mysql start
либо
/etc/init.d/mysql start
Не забываем удалить файл бэкапа, если он не нужен
rm имя_базы.tgz
Если же починить не удалось, то о последующих методах восстановления таблиц придется читать тут http://dev.mysql.com/doc/refman/5.7/en/backup-and-recovery.html. Но мне пока делать этого не приходилось.

Описание программки myisamchk myisamchk — MyISAM Table-Maintenance Utility.

Дополнение mysqlcheck

А есть и очень ленивая версия всего вышеперечисленного процесса, обработает все MyISAM таблицы во всех БД, доступных обозначенному юзеру и работает без остановки сервера MySQL:
mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
Либо в определенной БД:
mysqlcheck -u root -p --auto-repair --check --optimize имя_базы_данных
Без оптимизации, только проверку и ремонт можно сделать и для таблиц типа InnoDB:
mysqlcheck -u root -p --auto-repair --check --all-databases

rss