Загрузка дампа БД через консоль терминала (shell)

Иногда необходимо выгрузить dump базы данных (в нашем случае MySQL) через консоль. Для такой задачи необходимо зайти на сервер через протокол SSH и выполнить следующую команду (предварительно выгрузив на сервер файл с дампом базы данных MySQL):

mysql -u username -p database_name < file.sql

Где -u — указываем, что далее будет следовать имя пользователя БД

-p — указываем, что необходим ввод пароля для пользователя БД

database_name — имя базы данных, в которую необходимо выгрузить наш дамп

file.sql — полный путь к файлу с дампом базы данных.

ERROR 1153 (08S01) MySQL

Однако иногда, крайне редко, можно столкнуться со следующей ошибкой:

ERROR 1153 (08S01) at line 621: Got a packet bigger than 'max_allowed_packet' bytes

Для решения этой проблемы необходимо добавить следующую команду в строку запроса:

--max_allowed_packet=10M

где 10М — это необходимый размер памяти, выделяемый и разрешенный для выполнения операции.

Теперь наша строка запроса будет выглядеть следующим образом:

mysql --max_allowed_packet=10M -u username -p database_name < file.sql

UPDATE:

Также стоит указать, что если вы используете систему на основе MacOS (технику эппл, короче говоря), то с высокой вероятностью mysql нужно будет заменить на полный путь

/Applications/MAMP/Library/bin/mysql

В итоге код у нас получится такого плана:

/Applications/MAMP/library/bin/mysql --max_allowed_packet=128M -u username -p database_name < file.sql

У нас поставлен лимит 128Мб потому, что у нас база большего размера. В вашем случае вам необходимо будет установить необходимый вам лимит.

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