Небольшая заметка по регулярной работе с MySQL.
Резервное копирование и восстановление
Резервное копирование и восстановление в случае с маленькими базами можно делать привычным всем phpMyAdmin, но когда база начинает весить сотни мегабайт и больше, у phpMyAdmin начинаются проблемы. В этом случае лучше использовать консольные команды:
Создаем резервную копию базы
mysqldump -uИМЯПОЛЬЗОВАТЕЛЯ -h localhost -p ИМЯБАЗЫ --set-gtid-purged=OFF | gzip -c > last.gz
Восстанавливаем копию базы
gunzip < last.gz | mysql -uИМЯПОЛЬЗОВАТЕЛЯ -p ИМЯБАЗЫ
Восстановление таблиц в базе делаем командой
repair table 'ИМЯТАБЛИЦЫ'
Для со старым типом MyISAM может потребовать команда
repair table 'ИМЯТАБЛИЦЫ' use_frm
но надо иметь в виду что при этом слетит значение auto_increment
Заменить какой-то текст в таблице можно следующим образом
UPDATE ИМЯТАБЛИЦЫ SET ИМЯПОЛЯ = REPLACE(ИМЯПОЛЯ,'ЧТО_МЕНЯЕМ','НА_ЧТО_МЕНЯЕМ')
Удаление таблиц по шаблону (удалить все таблицы со схожей часть в названии, в данном случае prefix_)
SET SESSION group_concat_max_len = 99000000; SELECT CONCAT('DROP TABLE ', GROUP_CONCAT(table_name), ';') FROM information_schema.tables WHERE table_schema = 'dev_table1' AND table_name LIKE 'prefix_%'
на выходе получим готовый запрос для выполнения