MYSQLDUMP — и работа с ним

Дамп и восстановление базы данных MySQL

Дамп и восстановление базы данных MySQL довольно просто и удобно делать удаленно через SSH или прямо через консоль сервера. Удаленно, это можно делать используя программы Putty/Kitty. Также указанные ниже примеры Вы можете выполнять и на Windows запустив командную строку ‘cmd‘. Ниже приведены примеры о том, как создавать дампы базы данных MySQL и затем восстанавливать их при необходимости, например для Вашего сайта, интернет-магазина или какого либо другого проекта.

Создание дампа базы данных MySQL

Для того, чтоб выполнять данные команды, подключитесь удаленно к Вашему серверу через SSH используя одну из перечисленных выше программ. После подключения и авторизации к серверу/хостингу, Вы можете вводить приведенные ниже команды.

# Бекап одной базы данных в файл dump_file.sql
mysqldump -uroot -p your_base > dump_file.sql
 
 

# На windows дамп лучше всего создавать немного другой командой, которая предотвращает

# случайное затирание строк дампа из за конвертации символов перевода строки ‘\r\n’ в ‘\n’
mysqldump -uroot -p your_base -r dump_file_utf8.sql
 
 

# Если Вам нужен бекап только отдельных таблиц, а не всей базы данных

# (указываем наименования таблиц через пробел после названия базы данных)
mysqldump -uroot -p your_base TABLE1 TABLE2 TABLE3 > dump_file.sql
 
 

# Если нужно создать бекап только структуры базы данных без самих данных

mysqldump -uroot -p —no-data your_base > dump_file.sql
 
 

# Бекап всех баз данных в файл текущая_дата.gz

mysqldump -uroot -p —all_databases | gzip -c > ‘date «+%Y-%m-%d»‘.gz
 
 

# Бекап, где для каждой записи создается отдельный INSERT

# и с явным указанием кодировки базы данных UTF-8
mysqldump -uroot -p —default-character-set=utf8 your_base —extended-insert=FAL

 

 

В приведенном выше примере, для создания бекапа используется утилита mysqldump, которая входит в состав mysql. Далее указываются параметры для создания бекапа базы данных, которые разберем подробнее:

  • -u– параметр указывает логин, который будет использоваться для подключения к базе данных. В примере мы используем логин root, который нужно указать в этом параметре без пробела! В результате у нас это выглядит как -uroot
  • -p– параметр указывает что нужно ввести пароль для указанного логина. Мы его оставили пустым, в результате чего пароль нужно будет ввести после нажатия “Enter” при выполнении команды. Тем не менее, можно указать пароль сразу же здесь, как и в параметре логина, без пробела после -p, однако этот способ не является безопасным, так как консоль сохраняет Ваши команды в лог файл и если Вы его регулярно не очищаете, то он может быть просмотрен злоумышленником.
  • your_base– вместо этой строки в примере, вам необходимо указать реальное имя Вашей базы данных, для которой Вы создаете бекап.
  • >– оператор который показывает направление действия, т.е. как бы указывает, что вы собираетесь сделать запись из базы в файл.
  • sql– это название Вашего файла .slq в которую нужно сохранить Вашу базу данных. Он указывается через пробел после оператора ‘>’. Вы можете задать любое другое имя. Например, чтобы в имени система автоматически вставила текущее время, достаточно указать строку вида:
1  

 

‘date «+%Y-%m-%d»‘

 

 

после этой строки в примере указывается расширение файла ‘.gz‘. В результате будет создан файл вида ‘2014-11-15.gz‘.

 

  • Во втором примере, вместо оператора ‘>‘ используется оператор ‘|‘, который указывает на необходимость выполнения дополнительной команды gzip c параметром ‘-c‘ которая позволяет сразу же запаковать дамп в архив, а только затем сохранить его в файл вида ‘2014-11-15.gz‘, о чем сообщает оператор ‘>‘.
  • Параметр –no-dataпозволяет создать дамп только структуры базы данных без самих данных. В некоторых случаях довольно полезно, когда данные не нужны.
  • Параметры–default-character-set=utf8 и –extended-insert=FALSE. Первый позволяет Вам явно указать кодировку, которая используется этой базой данных, тем самым избежать сохранение базы в неверной кодировке Вместо utf8 можно указать любую другую кодировку, например cp1251. Второй параметр позволяет указать, что при экспорте для каждой записи необходимо создать отдельную команду INSERT. В некоторых случаях это может потребоваться при частичном восстановлении данных из дампа.

Восстановление базы данных из файла дампа MySQL

Теперь рассмотрим с Вами обратный процесс восстановления базы данных из файла дампа. Данное действие выполняется при помощи программы mysql. Рассмотрим сразу же пример.

1

2

 

 

# Восстанавливаем базу данных your_base из файла дампа dump_file

 

 

 

mysql -uroot -p your_base < dump_file.sql

 

 

Здесь также используются параметры ‘-u‘ и ‘-p‘, которые указывают на логин и пароль для подключения к базе данных аналогично утилите mysqldump, рассмотренной в предыдущем примере. После этого идет название базы данных, а также файла, из которого необходимо восстановить данные. Между ними ставится оператор ‘<‘ который указывает направление, что мы хотим импортировать данные в базу из файла.

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