mysqldump

mysqldump یک فایل SQL از ساختار و دادهٔ دیتابیس می‌سازد که با دستور mysql دوباره اجرا می‌شود. برای جدول‌های InnoDB همیشه از --single-transaction استفاده کنید تا بکاپ بدون قفل و سازگار گرفته شود.

با احتیاط

ساختار دستور

mysqldump [options] db_name [tables] > backup.sql

نمونه‌های کاربردی

mysqldump -u root -p appdb > appdb.sql

بکاپ ساده از یک دیتابیس

mysqldump -u root -p --single-transaction --routines --triggers --events appdb > appdb.sql

بکاپ کامل و سازگار از جدول‌های InnoDB بدون قفل کردن

mysqldump -u root -p --all-databases --single-transaction > all.sql

بکاپ از همهٔ دیتابیس‌های سرور

mysqldump -u root -p appdb users orders > two_tables.sql

بکاپ فقط از چند جدول

mysqldump -u root -p --no-data appdb > schema.sql

فقط ساختار جدول‌ها، بدون داده

mysqldump -u root -p appdb | gzip > appdb_$(date +%F).sql.gz

بکاپ فشرده با تاریخ در نام فایل

mysqldump -u root -p --databases appdb blog > two_dbs.sql

چند دیتابیس با دستور CREATE DATABASE در فایل

آپشن‌های مهم

--single-transaction
بکاپ یکپارچه برای InnoDB بدون قفل جدول‌ها
--routines
شامل stored procedure و function
--triggers
شامل trigger ها (به‌صورت پیش‌فرض روشن است)
--events
شامل event scheduler
--all-databases
همهٔ دیتابیس‌ها
--databases
چند دیتابیس همراه با دستور ساخت آن‌ها
--no-data
فقط ساختار
--no-create-info
فقط داده
--where
فیلتر سطرها، مثلاً --where="id>1000"
--quick
خواندن سطر به سطر برای جدول‌های بزرگ
--set-gtid-purged=OFF
حذف اطلاعات GTID برای ریستور روی سرور دیگر