В данной статье рассмотрены полезные сочетания команд ОС Linux, которые помогут работать с MySQL, в частности созданием и загрузком дампа, на серверах хостинга и VDS.
Более подробную информацию о каждой из команд можно получить, набрав man имя_команды
Если у Вас есть объемный дамп базы или таблица из MySQL (например, файл имеет имя dump.sql) и через phpMyAdmin не получается импортировать его в базу database
, это можно сделать через консоль:
mysql -u user -p database < dump.sql
Сделать дамп базы данных database
или таблицы table
и поместить его в файл с именем dump.sql можно следующим образом:
mysqldump -u user -p database > dump.sql
mysqldump -u user -p database table > table.sql
Создать дамп всех баз данных аккаунта в единый файл, может понадобиться при смене тарифного плана:
mysqldump --all-databases -u user -p > all_dump_DB.sql
Загрузка дампа базы с опцией величина пакета, если возникает ошибка Got a packet bigger than 'max_allowed_packet' bytes
:
mysql --max_allowed_packet=64M -u user -p database < dump.sql
Создание дампа с указанием кодировки, например utf8
:
mysqldump -u user -p database --default-character-set=utf8 > dump.sql
Если на сервере возникают проблемы с производительностью, то весьма вероятно, что причинами их является сервер MySQL. Ниже приведены некоторые команды, которые могут помочь идентифицировать проблему (большинство действий могут быть выполнены только на VDS).
Обзор списка выполняющихся процессов
# mysql
mysql> show full processlist;
Особое внимание следует обратить на запросы, находящиеся в состоянии "copying to temp table", если такие присутствуют.
Получение списка медленных запросов
MySQL может быть настроен таким образом, чтобы он сохранял информацию обо всех
запросах, исполняющихся больше 10 секунд (настраивается). Лог находится в файле
/var/log/mysql/mysql-slow.log
. Если такого файла на сервере нет, достаточно
раскомментировать опцию log_slow_queries
в файле /etc/mysql/my.cnf
(или
добавить, если таковая отсутствует), а затем перезапустить сервер командой
invoke-rc.d mysql restart
Строка должна выглядеть следующим образом:
log_slow_queries = /var/log/mysql/mysql-slow.log`
Тарифы на облачные VDS и VPS