Mysqldump

Утилита из состава mysql для создания дампа базы данных. Используется для создания резервной копии базы данных.

Создание дампа
Если кодировка не указана, то UTF8 используется.

Все базы mysqldump --all-databases -p | gzip --best > dump`date +%d%m%y-%H%M`.mysql.gz Ввести пароль root-пользователя mysql. Результатом работы команды будет файл архива.

Конкретная база данных mysqldump rubikoniwiki -p | gzip --best > rubikoniwiki`date +%d%m%y-%H%M`.mysql.gz

mysqldump rubikoniwiki -p --routines > output.sql

Конкретная таблица accounts_contacts table из sugarcrm database.

mysqldump -u root -ptmppassword sugarcrm accounts_contacts > /tmp/sugarcrm_accounts_contacts.sql

Автоматизация
Содержимое скрипта для ежедневного запуска посредством cron /usr/local/bin/mysqldump --all-databases | gzip --best > /CF2IDE/dumps/`date +%d%m%y`.gz

Результатом работы этого скрипта будет файл архива.

С указанием пароля mysqldump nameofDB -uroot -pXXXXXXX --routines | gzip --best > /var/backups/production-db-`date +%d% m%y-%H%M`.mysql.gz

Импорт дампа
Посредством клиента mysql create database yally; mysql -p yally < yally020210-2122.mysql GRANT ALL ON trac.* TO tracuser@localhost IDENTIFIED BY 'password';

Выкусывание из большого файла
делим дамп на базы grep -n ‘CREATE DATABASE’ mysql.sql вырезаем нужную базу sed -n ’104236,104856p’ mysql.sql > pool.sql делим на таблицы grep -n ‘CREATE TABLE’ pool.sql sed -n ’462,511p’ pool.sql > zm_uri.sql sed -n ’73,89p’ pool.sql > zm_data.sql далее быстро редактируем и вставляем записи

Хранимые процедуры
Если в базах есть хранимые процедуры ( Include stored routines (procedures and functions), то mysqldump надо запускать с ключем '--routines' (или -R), по умолчанию они не бекапятся. Требуются права SELECT в mysql.proc При импорте Утрачивается timestamp.

Безопасное указание пароля
Создается файл /usr/local/etc/mysql-opts и туда помещаются параметры. Ему права соответствующие [mysqldump] password="dasfsdfsd"

Вызов команды надо дополнить ключом, где указывает путь до файла. Но он должны идти сразу за названием команды! Иначе будет unknown variable 'defaults-extra-file=

When using command-line programs with option file parameters --no-defaults, --print-defaults, --defaults-file, --defaults-extra-file and --defaults-group-suffix,

"To work properly, each of these options must immediately follow the command name" (http://dev.mysql.com/doc/refman/5.0/en/option-files.html).

Только структура
mysqldump -h localhost -u root -p --skip-set-charset --no-data --compact some_db

mysqldump -u [user] -p[pass] --no-create-db --no-create-info mydb > mydb.sql
 * 1) To export to file (data only)

mysqldump -u [user] -p[pass] --no-data mydb > mydb.sql
 * 1) To export to file (structure only)

mysql -u [user] -p[pass] mydb < mydb.sql
 * 1) To import to database