Шпаргалка по утилите mysqldump
Jul 27, 2015 10:03 · 243 words · 2 minute read
С помощью утилиты 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'