Шпаргалка по утилите mysqldump

Jul 27, 2015 10:03 · 243 words · 2 minute read mysql backup

С помощью утилиты mysqldump можно получать дамп содержимого одной или нескольких баз данных — по сути делать резервную копию (бекап) баз данных. Развернуть базу данных из полученного дампа (sql-файла) можно также с помощью данной утилиты.

Давайте разберемся с основными параметрами и синтаксисом утилиты!

Синтаксис команды следующий:

mysqldump [параметры] [база_данных] > /[директория_для_дампа]/[имя_дампа].sql

Обязательными параметрами являются имя пользователя и пароль. Если пароль не указать в явном виде (с помощью ключа -pPASSWORD), то его необходимо будет ввести с клавиатуры.

С полным перечнем параметров можно ознакомиться с помощью справки (man mysqldump в консоли Unix) или запустив mysqldump --help.

Несколько наиболее часто встречающихся примеров использования утилиты mysqldump:

  • создание дампа одной базы данных на удаленном хосте:
mysqldump -uroot -h8.8.8.8 -p database > /tmp/database.sql
  • создание дампа одной базы данных на локальном хосте:
mysqldump -uroot -p database > /tmp/database.sql
  • создание дампа нескольких баз данных:
mysqldump -uroot -p -B database1 database2 database3 > /tmp/databases.sql
  • создание дампа всех баз данных:
mysqldump -uroot -p -A > /tmp/databases.sql
  • создание дампа + сжатие полученного дампа в архив gz:
mysqldump uroot -p -A | gzip > /tmp/databases.sql
  • развертывание sql-дампа базы:
mysql -uroot -p database < /tmp/database.sql
  • развертывание gz архива с sql-дампом одной базы:
zcat /tmp/database.sql.gz | mysql -uroot -p database

развертывание gz архива с sql-дампом всех баз:

zcat /tmp/database.sql.gz | mysql -uroot -p

Пример bash-скрипта для создания резервной копии баз данных утилитой mysqldump:

#!/bin/bash
DATE="$(date +%Y%m%d)"
logger -t mysql-backup 'start mysql backup'
/usr/bin/mysqldump --user=USER --password=PASSWORD --all-databases | gzip > /usr/local/backup/mysql$DATE.sql.gz 2>&1
logger -t mysql-backup 'finish mysql backup'
tweet Share