نحوه تهیه DUMP از دیتابیس MySQL و برگرداندن مجدد داده ها

لیست تمام جداول در دیتابیس را با استفاده از query زیر بدست می آوریم:

SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ('mysql','information_schema','performance_schema')

اجرای دستور dump با استفاده از لیست جداولی که در query قبل به دست آورده ایم. قبل از اجرای دستور mysqldump باید در cmd به آدرس bin فولدر mysql رفت (مثلا C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin)

mysqldump -u root -p --databases [db1 db2 …] > destinationfile.sql

تمام دیتابیس هایی که از مرحله 1 بدست آوردیم را دراپ می کنیم. قبل از این کار دستور دراپ را با query زیر تولید می کنیم:

SELECT CONCAT('DROP DATABASE ',schema_name,' ;') AS stmt
  FROM information_schema.schemata
WHERE schema_name NOT IN
('mysql','information_schema','performance_schema')
 ORDER BY schema_name

نتیجه بالا را درون یک فایل .sql ذخیره می کنیم. و بعد در خط فرمان mysql فایل را اجرا می کنیم:

mysql> source queryfile.sql

سرویس mysql را stop می کنیم.
فایل های ibdata1 و ib_log را حذف می کنیم.
سرویس mysql را start می کنیم.
فایل بدست آمده از مرحله شماره 2 (dump file) را restore می کنیم.

mysql -u root -p < dumpfile.sql