رفتن به محتوای اصلی
دیدگاه کلود | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش ایمپورت و اکسپورت دیتابیس در MySQL و MariaDB

آموزش ایمپورت و اکسپورت دیتابیس در MySQL و MariaDB

در این آموزش، نحوه ایمپورت و اکسپورت دیتابیس‌های MySQL و MariaDB به‌صورت کامل یا جزئی توضیح داده شده است. روش‌های انتقال جداول، کاربران و سطح دسترسی‌ها همراه با مدیریت فایل‌های SQL حجیم آموزش داده شده‌اند. با این مهارت‌ها می‌توانید بکاپ‌گیری، مهاجرت سرورها و مدیریت دیتابیس در محیط‌های تولید را به‌راحتی انجام دهید.

مقدمه

ایمپورت و اکسپورت گرفتن از دیتابیس‌ها یکی از کارهای روزمره در مدیریت سرورها و توسعه نرم‌افزار است. از بکاپ‌گیری و بازیابی اطلاعات گرفته تا انتقال سایت بین سرورها، کپی‌کردن محیط‌های کاری یا رفع خطاهای دیتابیس، همه و همه به فایل‌های Dump وابسته هستند.

در این آموزش از دیدگاه، یاد می‌گیرید چطور دیتابیس‌های MySQL یا MariaDB را به‌صورت کامل یا جزئی خروجی بگیرید و دوباره در سرور مقصد وارد کنید. همچنین با انتقال جداول خاص، مهاجرت کاربران و سطح دسترسی‌ها، و مدیریت فایل‌های حجیم SQL آشنا می‌شوید. تمام دستورات در MySQL و MariaDB یکسان هستند و تفاوتی ندارند.


نکات کلیدی این آموزش

  • ابزار mysqldump استانداردترین روش برای بکاپ منطقی (Logical Backup) است و ساختار و داده‌ها را در فایل .sql ذخیره می‌کند.

  • برای ایمپورت، دیتابیس مقصد باید از قبل ساخته شده باشد.

  • امکان خروجی گرفتن از جداول خاص به‌جای کل دیتابیس وجود دارد.

  • کاربران و سطح دسترسی‌ها داخل دیتابیس mysql ذخیره می‌شوند و باید جداگانه منتقل شوند.

  • فشرده‌سازی با gzip باعث کاهش حجم و افزایش سرعت انتقال می‌شود.

  • برای دیتابیس‌های بزرگ InnoDB استفاده از --single-transaction و --quick ضروری است.

  • فایل‌های SQL بزرگ را می‌توان به چند بخش کوچک‌تر تقسیم کرد.

  • خطاهایی مثل Table already exists با گزینه‌هایی مثل --add-drop-table قابل پیشگیری هستند.


پیش‌نیازها

برای انجام عملیات ایمپورت و اکسپورت دیتابیس نیاز دارید به:

  • یک سرور لینوکسی (Ubuntu، Debian، CentOS و …) با دسترسی sudo

  • نصب MySQL یا MariaDB

  • حداقل یک دیتابیس نمونه برای تمرین

  • دسترسی به یوزر دیتابیس با سطح دسترسی مناسب (ترجیحاً root)


خروجی گرفتن از دیتابیس MySQL یا MariaDB

برای گرفتن بکاپ از یک دیتابیس، از دستور زیر استفاده کنید:

 
mysqldump -u username -p database_name > backup.sql
  • username نام کاربر دیتابیس

  • database_name نام دیتابیس

  • backup.sql فایل خروجی

اگر دستور بدون خطا اجرا شود، خروجی‌ای در ترمینال نمایش داده نمی‌شود. برای بررسی صحت فایل می‌توانید ابتدای آن را مشاهده کنید:

 
head -n 5 backup.sql

ایمپورت کردن دیتابیس

1. ساخت دیتابیس مقصد

ابتدا وارد محیط MySQL شوید:

 
mysql -u root -p

سپس دیتابیس جدید بسازید:

 
CREATE DATABASE new_database;

2. ایمپورت فایل SQL

پس از خروج از محیط MySQL:

 
mysql -u username -p new_database < backup.sql

در صورت موفقیت‌آمیز بودن عملیات، خروجی‌ای نمایش داده نمی‌شود.


ایمپورت و اکسپورت جداول خاص

خروجی گرفتن از جداول مشخص

 
mysqldump -u root -p database_name table1 table2 > tables.sql

ایمپورت جداول

 
mysql -u root -p target_database < tables.sql

انتقال کاربران و سطح دسترسی‌ها

دیتاهای مربوط به کاربران داخل دیتابیس سیستمی mysql ذخیره می‌شوند و به‌صورت پیش‌فرض در mysqldump نیستند.

روش اول: خروجی گرفتن از جدول‌های سطح دسترسی

 
mysqldump -u root -p mysql user db tables_priv columns_priv procs_priv > users.sql

و سپس ایمپورت در سرور مقصد:

 
mysql -u root -p mysql < users.sql FLUSH PRIVILEGES;

روش دوم (پیشنهادی): استفاده از GRANT

این روش سازگارتر و امن‌تر است و فقط دستورات GRANT را منتقل می‌کند.


مدیریت فایل‌های SQL حجیم

فشرده‌سازی با gzip

 
mysqldump -u root -p database_name | gzip > backup.sql.gz gunzip < backup.sql.gz | mysql -u root -p database_name

غیرفعال‌سازی موقت Foreign Key

 
SET foreign_key_checks = 0; SET unique_checks = 0; SET autocommit = 0;

و بعد از اتمام:

 
COMMIT; SET foreign_key_checks = 1; SET unique_checks = 1;

تقسیم فایل‌های بزرگ

 
split -l 5000 large.sql part_

خطاهای رایج و راه‌حل‌ها

  • ایمپورت روی دیتابیس اشتباه
    همیشه نام دیتابیس مقصد را دوبار چک کنید.

  • فراموش کردن ساخت دیتابیس
    قبل از ایمپورت حتماً دیتابیس را بسازید.

  • سطح دسترسی ناکافی
    از یوزری با دسترسی کامل استفاده کنید.

  • خطای Table already exists
    هنگام خروجی گرفتن از --add-drop-table استفاده کنید.

  • ناسازگاری Charset
    از utf8mb4 در هر دو سمت استفاده شود.


جمع‌بندی

در این آموزش از دیدگاه یاد گرفتید چگونه دیتابیس‌های MySQL و MariaDB را به‌صورت کامل یا جزئی ایمپورت و اکسپورت کنید، کاربران و دسترسی‌ها را منتقل نمایید و با دیتابیس‌های حجیم بدون دردسر کار کنید. تسلط بر این مهارت‌ها برای بکاپ‌گیری، مهاجرت سرور، توسعه و محیط‌های Production کاملاً ضروری است.