در این پست به شما چندین نمونه عملی درباره چگونگی اجرا کردن عملیات مختلف Import/Export (ایمپورت - اکسپورت) یا Backup/Restore (بک آپ - ریستور) دیتابیس های MySQL/MariaDB را با استفاده از دستور mysqldump را نمایش خواهیم داد. همچنین نحوه Restor کردن آنها با کمک دستور mysql و mysqlimport در لینوکس را به شما نمایش خواهیم داد.
mysqldump یک برنامه کلاینتی - کامندی است و برای بک آپ گیری از دیتابیس مای اسکیول لوکال یا ریموت یا مجموعه ای از دیتابیس ها در یک فایل ساده استفاده میشود.
فرض میکنیم که شما از قبل MySQL را روی سیستم لینوکس تان و با دسترسی های مدیریتی نصب کردید و همچنین دانش کمی روی مای اسکیول دارید. اگر MySQL روی سیستم تان نصب نیست و یا هیچ دانشی روی MySQL ندارید به شما پیشنهاد میکنم لینک های زیر را مطالعه بفرمایید.
آموزش دستورات پایه ای MySQL/MariaDB (بخش اول)
آموزش نصب و راه اندازی MySQL Server در RedHat / CentOS 5 - 7 و Fedora 21 - 23
آموزش نصب و راه اندازی MariaDB 10 در لینوکس (Debian/Ubuntu و RHEL/Fedora/CentOS)
نحوه بک آپ گرفتن (Export) از دیتابیس MySQL
برای Backup گرفتن از دیتابیس یا دیتابیس های یک MySQL ابتدا باید دیتابیس مورد نظر در سرور MySQL وجود داشته باشد همچنین شما دسترسی لازم به آن Database را داشته باشید. فرمت دستور بک آپ گیری از دیتابیس به شرح زیر میباشد :
پارامترهای دستور بالا به شرح زیر میباشد :
[username] : یک Username معتبر در MySQL
[password] : یک Password معتبر برای یوزر در MySQL
[database_name] : نام Database معتبری که شما میخواهید از آن بک آپ بگیرید.
[dump_file.sql] : نام فایل Backup که شما میخواهید ایجاد کنید.
نحوه Export گرفتن از یک دیتابیس MySQL مجزا (Single MySQL)
برای backup گرفتن از یک دیتابیس مجزا از دستور زیر استفاده میکنیم، این دستور از ساختار دیتابیس [rsyslog] به همراه اطلاعات موجود در آن فایل bakcup ی به نام rsyslog.sql ایجاد میکند.
نحوه Export گرفتن از چندین دیتابیس MySQL
اگر شما بخواهید از چندین دیتابیس بک آپ بگیرید باید از دستور زیر استفاده کنید. نمونه دستور زیر از ساختار دیتابیس های rsyslog & syslog و دیتای موجود در آنها در فایل rsyslog_syslog.sql بک آپ میگیرد.
نحوه Export گرفتن از تمامی دیتابیس های MySQL
اگر شما بخواهید از همه دیتابیس ها بک آپ بگیرید از دستور زیر به همراه آپشن --all-database باید استفاده کنید. دستور زیر از تمام دیتابیس ها به همراه ساختار و دیتای موجود در آنها backup ی با نام all-databases.sql خواهد گرفت.
نحوه Export گرفتن تنها از ساختار دیتابیس MySQL
اگر شما تنها بخواهید از ساختار دیتابیس بدون دیتای موجود در آن بک آپ بگیرید از دستور زیر به همراه گزینه --no-data استفاده میکنیم. دستور زیر تنها ساختار دیتابیس rsyslog را درون فایل rsyslog_structure.sql بک آپ میگیرد.
نحوه Export گرفتن تنها از Data یک دیتابیس در MySQL
برای Backup گرفتن تنها از اطلاعات دیتابیس بدون ساختار آن از آپشن --no-create-info به همراه دستور زیر استفاده کنید. این دستور اطلاعات دیتابیس rsyslog درون فایلی به نام rsyslog_data.sql بک آپ میگیرد.
نحوه Export گرفتن از تیبل "Table" مجزا از دیتابیس
با استفاده از دستور زیر شما میتوانید backup ی از یک Table (جدول) مجزا یا جدول خاص در دیتابیس تان داشته باشید. دستور زیر تنها از جدول wp_post از دیتابیس wordpress بک آپ میگیرد.
نحوه Export گرفتن از چندین جدول "Tables" از دیتابیس
اگر بخواهید از چندین جدول خاص از دیتابیس بک آپ داشته باشید کافی است هر جدول را با فاصله (space) از دیگری جدا کنید :
نحوه Export گرفتن از دیتابیس MySQL ریموت
دستور زیر از دیتابیس [gallery] در سرور ریموت [172.16.25.126] بک آپی در سرور لوکال خواهد گرفت :
نحوه ی Restore/Import کردن دیتابیس MySQL
در توضیحات بالا ما نحوه ی بک آپ گرفتن (Export) از، جداول یا تنها ساختار و یا اطلاعات Database را مشاهده کردیم. اکنون نحوه ی ریستور کردن آنها را با استفاده از دستور زیر بررسی خواهیم کرد.
نحوه ی Restore/Import کردن دیتابیس مجزایی از MySQL
برای ریستور کردن یک دیتابیس شما باید یک دیتابیس خالی روی ماشین مقصد ایجاد کنید و دیتابیس را با استفاده از دستور mysql ریستور کنید. برای مثال دستور زیر فایل rsyslog.sql را به دیتابیس rsyslog ریستور میکند.
اگر شما بخواهید یک دیتابیس را که از قبل وجود دارد روی ماشین مقصد ریستور کنید در نتیجه شما نیاز خواهید داشت که از دستور mysqlimport استفاده کنید.
به شیوه ای مشابه شما همچنین میتوانید جدول های دیتابیس، ساختار و دیتا را ریستور کنید. باعث خوشحالیست در صورت رضایت از این پست آنرا با دوستان خود به اشتراک بگذارید.
mysqldump یک برنامه کلاینتی - کامندی است و برای بک آپ گیری از دیتابیس مای اسکیول لوکال یا ریموت یا مجموعه ای از دیتابیس ها در یک فایل ساده استفاده میشود.
فرض میکنیم که شما از قبل MySQL را روی سیستم لینوکس تان و با دسترسی های مدیریتی نصب کردید و همچنین دانش کمی روی مای اسکیول دارید. اگر MySQL روی سیستم تان نصب نیست و یا هیچ دانشی روی MySQL ندارید به شما پیشنهاد میکنم لینک های زیر را مطالعه بفرمایید.
آموزش دستورات پایه ای MySQL/MariaDB (بخش اول)
آموزش نصب و راه اندازی MySQL Server در RedHat / CentOS 5 - 7 و Fedora 21 - 23
آموزش نصب و راه اندازی MariaDB 10 در لینوکس (Debian/Ubuntu و RHEL/Fedora/CentOS)
نحوه بک آپ گرفتن (Export) از دیتابیس MySQL
برای Backup گرفتن از دیتابیس یا دیتابیس های یک MySQL ابتدا باید دیتابیس مورد نظر در سرور MySQL وجود داشته باشد همچنین شما دسترسی لازم به آن Database را داشته باشید. فرمت دستور بک آپ گیری از دیتابیس به شرح زیر میباشد :
کد PHP:
# mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]
پارامترهای دستور بالا به شرح زیر میباشد :
[username] : یک Username معتبر در MySQL
[password] : یک Password معتبر برای یوزر در MySQL
[database_name] : نام Database معتبری که شما میخواهید از آن بک آپ بگیرید.
[dump_file.sql] : نام فایل Backup که شما میخواهید ایجاد کنید.
نحوه Export گرفتن از یک دیتابیس MySQL مجزا (Single MySQL)
برای backup گرفتن از یک دیتابیس مجزا از دستور زیر استفاده میکنیم، این دستور از ساختار دیتابیس [rsyslog] به همراه اطلاعات موجود در آن فایل bakcup ی به نام rsyslog.sql ایجاد میکند.
کد PHP:
# mysqldump -u root –plinuxzone rsyslog > rsyslog.sql
نحوه Export گرفتن از چندین دیتابیس MySQL
اگر شما بخواهید از چندین دیتابیس بک آپ بگیرید باید از دستور زیر استفاده کنید. نمونه دستور زیر از ساختار دیتابیس های rsyslog & syslog و دیتای موجود در آنها در فایل rsyslog_syslog.sql بک آپ میگیرد.
کد PHP:
# mysqldump -u root -plinuxzone --databases rsyslog syslog > rsyslog_syslog.sql
نحوه Export گرفتن از تمامی دیتابیس های MySQL
اگر شما بخواهید از همه دیتابیس ها بک آپ بگیرید از دستور زیر به همراه آپشن --all-database باید استفاده کنید. دستور زیر از تمام دیتابیس ها به همراه ساختار و دیتای موجود در آنها backup ی با نام all-databases.sql خواهد گرفت.
کد PHP:
# mysqldump -u root -plinuxzone --all-databases > all-databases.sql
نحوه Export گرفتن تنها از ساختار دیتابیس MySQL
اگر شما تنها بخواهید از ساختار دیتابیس بدون دیتای موجود در آن بک آپ بگیرید از دستور زیر به همراه گزینه --no-data استفاده میکنیم. دستور زیر تنها ساختار دیتابیس rsyslog را درون فایل rsyslog_structure.sql بک آپ میگیرد.
کد PHP:
# mysqldump -u root -plinuxzone -–no-data rsyslog > rsyslog_structure.sql
نحوه Export گرفتن تنها از Data یک دیتابیس در MySQL
برای Backup گرفتن تنها از اطلاعات دیتابیس بدون ساختار آن از آپشن --no-create-info به همراه دستور زیر استفاده کنید. این دستور اطلاعات دیتابیس rsyslog درون فایلی به نام rsyslog_data.sql بک آپ میگیرد.
کد PHP:
# mysqldump -u root -plinuxzone --no-create-db --no-create-info rsyslog > rsyslog_data.sql
نحوه Export گرفتن از تیبل "Table" مجزا از دیتابیس
با استفاده از دستور زیر شما میتوانید backup ی از یک Table (جدول) مجزا یا جدول خاص در دیتابیس تان داشته باشید. دستور زیر تنها از جدول wp_post از دیتابیس wordpress بک آپ میگیرد.
کد PHP:
# mysqldump -u root -plinuxzone wordpress wp_posts > wordpress_posts.sql
نحوه Export گرفتن از چندین جدول "Tables" از دیتابیس
اگر بخواهید از چندین جدول خاص از دیتابیس بک آپ داشته باشید کافی است هر جدول را با فاصله (space) از دیگری جدا کنید :
کد PHP:
# mysqldump -u root -plinuxzone wordpress wp_posts wp_comments > wordpress_posts_comments.sql
نحوه Export گرفتن از دیتابیس MySQL ریموت
دستور زیر از دیتابیس [gallery] در سرور ریموت [172.16.25.126] بک آپی در سرور لوکال خواهد گرفت :
کد PHP:
# mysqldump -h 172.16.25.126 -u root -plinuxzone gallery > gallery.sql
نحوه ی Restore/Import کردن دیتابیس MySQL
در توضیحات بالا ما نحوه ی بک آپ گرفتن (Export) از، جداول یا تنها ساختار و یا اطلاعات Database را مشاهده کردیم. اکنون نحوه ی ریستور کردن آنها را با استفاده از دستور زیر بررسی خواهیم کرد.
کد PHP:
# # mysql -u [username] –p[password] [database_name] < [dump_file.sql]
نحوه ی Restore/Import کردن دیتابیس مجزایی از MySQL
برای ریستور کردن یک دیتابیس شما باید یک دیتابیس خالی روی ماشین مقصد ایجاد کنید و دیتابیس را با استفاده از دستور mysql ریستور کنید. برای مثال دستور زیر فایل rsyslog.sql را به دیتابیس rsyslog ریستور میکند.
کد PHP:
# mysql -u root -plinuxzone rsyslog < rsyslog.sql
کد PHP:
# mysqlimport -u root -plinuxzone rsyslog < rsyslog.sql
به شیوه ای مشابه شما همچنین میتوانید جدول های دیتابیس، ساختار و دیتا را ریستور کنید. باعث خوشحالیست در صورت رضایت از این پست آنرا با دوستان خود به اشتراک بگذارید.