learn

Import و Export دیتابیس MySQL و MariaDB با فایل SQL

راهنمای خروجی گرفتن و وارد کردن فایل SQL با تفکیک ابزارهای MySQL و MariaDB و آزمون واقعی بازیابی.

Import و Export دیتابیس با فایل SQL برای انتقال یا بازیابی داده کاربرد دارد. فایل خروجی شامل دستورهایی برای ساخت ساختار و درج داده است. دستورهای این راهنما را ابتدا برای یک پایگاه نمونه اجرا کنید؛ وارد کردن فایل روی دیتابیس فعال می‌تواند جدول‌ها و داده‌های آن را تغییر دهد.

پیش‌نیاز Import و Export دیتابیس

نام پایگاه، میزبان، نسخهٔ سرور و ابزار خط فرمان را مشخص کنید. کاربر باید مجوز لازم عملیات را داشته باشد. حساب root سیستم‌عامل، مدیر پنل و کاربر پایگاه داده یکی نیستند؛ از حساب مناسب همان پایگاه استفاده کنید.

فایل خروجی ممکن است اطلاعات کاربران و تنظیمات خصوصی داشته باشد. آن را بیرون پوشهٔ عمومی وب نگه دارید و به هر شخصی دسترسی ندهید. رمز را بعد از گزینهٔ -p در خط فرمان ننویسید؛ ابزار آن را به‌صورت جدا درخواست می‌کند.

انتخاب ابزار درست

برای MySQL از mysqldump و برای MariaDB از mariadb-dump متناسب با نسخه استفاده کنید. نام قدیمی mysqldump در تمام بسته‌های جدید MariaDB در دسترس نیست. فایل‌های این دو محصول را بدون آزمون سازگاری قابل تعویض فرض نکنید.

در محیط دارای پنل، نام پایگاه ممکن است پیشوند حساب داشته باشد. نام کامل را از پنل بخوانید. اگر هدف انتقال سایت است، فایل‌های برنامه و رسانه‌ها هم لازم‌اند؛ خروجی SQL به‌تنهایی نسخهٔ کامل سایت نیست.

گرفتن خروجی از MySQL

نمونهٔ زیر برای پوستهٔ لینوکس و جدول‌های InnoDB است. نام کاربر، پایگاه و فایل را جایگزین کنید. در پوشه‌ای خصوصی و برای فایل تازه اجرا کنید؛ علامت > فایل هم‌نام قبلی را بازنویسی می‌کند.

umask 077
mysqldump -u db_user -p --single-transaction --routines --events --triggers database_name > database-export.sql
echo $?

بلافاصله کد خروج و پیام خطا را بررسی کنید. صفر بودن کد خروج نشانهٔ موفقیت اجرای فرمان است، اما آزمون بازیابی همچنان لازم است. گزینه‌های routines و events به مجوز مناسب نیاز دارند؛ خطای مجوز را پنهان نکنید.

خروجی MariaDB و محدودیت سازگاری

mariadb-dump -u db_user -p --single-transaction --routines --events --triggers database_name > mariadb-export.sql

در نسخه‌های جدید، فایل MariaDB می‌تواند دستور فعال‌سازی sandbox داشته باشد که کلاینت قدیمی یا mysql آن را نمی‌فهمد. از ابزار سازگار استفاده کنید و خطا را با حذف تصادفی سطرها دور نزنید.

گزینهٔ single-transaction برای سازگاری جدول‌های InnoDB کاربرد دارد؛ برای همهٔ موتورهای ذخیره‌سازی تضمین یکسانی نمی‌دهد. هنگام خروجی گرفتن، تغییر ساختار جدول مانند ALTER یا DROP انجام ندهید.

وارد کردن در پایگاه آزمایشی خالی

پایگاه مقصد خالی را با کاربر مجاز یا از پنل هاست بسازید و مجوز لازم را بدهید. charset و collation مبدأ و مقصد باید سازگار باشند. ابتدا فایل را از نظر نام پایگاه، دستور USE و دستورهای حذف بررسی کنید؛ نام مقصد در فرمان لزوماً همهٔ دستورهای داخل فایل را محدود نمی‌کند.

mysql -u db_user -p test_database < database-export.sql

برای فایل MariaDB با کلاینت سازگار:

mariadb -u db_user -p test_database < mariadb-export.sql

فایل ناشناس را اجرا نکنید؛ فایل SQL دستور اجرایی است. از گزینهٔ نادیده گرفتن خطا برای کامل جلوه دادن بازیابی استفاده نکنید.

کنترل نتیجه و خطاهای رایج

جدول‌ها، تعداد رکوردهای مهم و نمونهٔ متن فارسی را با مبدأ مقایسه کنید. سپس خواندن و ذخیرهٔ مجاز برنامه را در محیط آزمایشی بررسی کنید. پیام نداشتن در ترمینال، به‌تنهایی سلامت کامل داده را ثابت نمی‌کند.

در خطای Access denied، حساب و مجوز را بررسی کنید. در Unknown collation، سازگاری نسخه‌ها را بسنجید. خطای DEFINER نیز باید با شناخت مالک و مجوز شیء بررسی شود. تا علت خطا روشن نشده، فایل را روی پایگاه اصلی تکرار نکنید.

مطالعهٔ مرتبط

بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شده‌اند.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب