در این دانشنامه قصد داریم نحوه کپی کردن دیتابیس را بر روی سرور دیگر به شما اموزش دهیم. مطمئننا یکی از سخت ترین کارها انتقال فایل های دیتابیسی با حجم بالا از جایی به جای دیگر است. در دانشنامه به شما اموزش میدهیم به جای استفاده از FTP برای انتقال دیتابیس، که پایین بودن سرعت از معایب بزرگ ان است، دیتابیس خود را فشرده ساخته و با SSH زدن به سرور مقصد به راحتی و با سرعت بالا انتقال را انجام دهید. برای انتقال دیتابیس Mysql متاسفانه چند مشکل وجود دارد. اول از همه اینکه شما با phpMyAdmin سر و کار دارید و کاربری ان برای انتقال فایل های حجیم نیست و محدودیت هایی در ان در مورد import و export وجود دارد که کار را برای انتقال فایل های حجم بالا سخت خواهد کرد.
هنگامی که قصد انتقال دیتابیس را دارید اولین راهی که برای شما وجود دارد گرفتن یک خروجی از دیتابیس و دانلود ان بر روی سیستم خود میباشد تا درنهایت از طریق FTP به سرور دیگر منتقل گردد. این امر این به این خاطر است که در phpMyAdmin مقصد گزینه ای برای بازگردانی یا Restore اطلاعات تعبیه نگردیده است. در چنین شرایطی بهتر است از میزبان هاست خود تقاضا کنید که این کار را برای شما از طریق شل یا SSH انجام دهد. برای این کار کافیست یک نسحه پشتیبان از دیتابیس شما با استفاده کامند زیر گرفته شود :
mysqldump -p -u oldusername olddatabase > dbname.sql
در کامند بالا به oldusername یوزرنیم دیتابیس و به جای olddatabase نام دیتابیس را قرار دهید. با اجرای این کامند بلافاصله پسورد دیتابیس از شما خواسته میشود و با وارد نمودن پسورد تمام دیتابیس در فایلی به نام dbname.sql ذخیره خواهد گردید. در نهایت نیز با تغییر دسترسی یا Permission ان میتوانید با دستور wget در سرور مقصد به راحتی ان را دانلود نمایید.
مشکل بعدی وارد کردن دیتابیس از طریق phpMyAdmin میباشد که همان طور که در تصویر مشاهده میکنید میزان حجم اجازه داده یه شما برای اپلود 2Mb میباشد بدین معنا که در صورت دانلود فایل بک اپ بر روی لوکال، امکان اپلود ان وجود نخواهد داشت. همچنین ممکن است دسترسی های لازم برای Import فایل ها در مکان مورد نظر از طریق FTP نیز به شما داده نشده باشد زیرا هاست اشتراکی هست و محدودیت های زیاد! البته بهترین راه تغییر این محدودیت در تنظیمات فایل php.ini است. از انجا که ما فرض را بر ان می گذاریم که شما کاربر هاست اشتراکی هستید و دسترسی های لازم را برای انجام این کار ندارید روش دیگری را برای Import دیتابیس اموزش میدهیم :
خوشبخنامه SSH باز هم این مشکل را برای شما حل خواهد نمود. به جایی که قصد بازگردانی اطلاعات را دارید بروید و کامند زیر را اجرا کنید :
mysql -p -u newusername newdatabase < dbname.sql
پس از اجرای کامند پسورد دیتابیس از شما خواسته میشود و با وارد کردن ان اطلاعات بدون توجه به حجم ،در جایی که اعلام کرده بودی import خواهند شد.