یکی از مشکلات بزرگی که هنگام ریستور بکاپ برای وبمستران رخ میدهد مشکل import دیتابیسهای بزرگ میباشد در این مقاله به آموزش ایمپورت دیتابیس در ssh و رفع این مشکل خواهیم پرداخت.
در مقاله افزایش حجم آپلود در phpmyadmin مشکل آن دسته از کسانی که حین ایمپیورت دیتابیس از طریق phpmyadmin به ارور محدودیت php برخورد میکردند را حل کردیم ولی اگر حجم پایگاه داده شما چیزی در حدود ۱۰ تا ۲۰ گیگ باشد چطور؟
قطعاً در اینگونه موارد عملیات ایمپورت به درستی انجام نمیشود و به دلیل حجم زیاد دیتابیس روش فوق عاقلانه نخواهد بود. در مواردی هم اگر بخواهید به طور مثال یک وبسایت را از یک هاست با پنل دایرکت ادمین به هاست جدید مجهز به سی پنل انتقال دهید مجبور هستید عملیات انتقال را به صورت دستی انجام دهید و باید از روش ایمپورت در ssh استفاده کنید.
نحوه ایمپورت دیتابیس در ssh
تنها در ۳ قدم ساده میتوانید دیتابیس خود را بدون هیچ دردسری تنها در چند دقیقه در mysql ایمپورت کنید. کافی است ۳ گام زیر را قدم به قدم و بدون هیچ تغییری انجام دهید.
قدم اول: ابتدا با دسترسی روت از طریق putty به ssh سرور خودتان لاگین کنید.
قدم دوم: سپس فایل دیتابیس سایت موردنظر را بر روی سرور دانلود کنید، میتوانید از دستور wget و یا curl بدین منظور استفاده کنید.
قدم سوم: سپس باید پارامتر max_allowed_packet را در فایل my.cnf افزایش دهید، این پارامتر مقدار حداکثر پکتهای دریافتی مشخص میکند و در سرعت ایمپورت دیتابیس در ssh بسیار تأثیرگذار است. توصیه میکنیم قبل از اعمال هرگونه تغییری در فایل مربوطه از آن یک بکاپ تهیه کنید. مسیر پیشفرض این فایل در شاخه etc/ قرار دارد.
دو راه برای ایمپورت دیتابیس در ssh وجود دارد نخست به پنل کاربری لاگین کنید و توسط آموزش ساخت دیتابیس در mysql اقدام به ساخت یک دیتابیس و یک یوزر اختصاصی جدید کنید؛ و سپس توسط دستور زیر اقدام به ایمپورت دیتابیس از طریق ssh کنید.
mysql -u dbuser -p dbname < database.sql
کاملاً مشخص هستش دیگه، به جای dbuser نام یوزری که از طریق پنل ساختید را وارد میکنید و به جای dbname نام دیتابیس ساخته شده و به جای database.sql نیز مسیر فایل دیتابیس خودتان را وارد میکنید.
توجه: این دستور را در شاخهای که فایل دیتابیس شما قرار دارد وارد کنید.
در حالتی هم اگر میخواهید فایل دیتابیس با دسترسی root بر روی mysql ایمپورت شود میتوانید از دستور زیر جهت ایمپورت دیتابیس در ssh استفاده کنید.
mysql -u root -p dbname < database.sql
بعد از زدن دکمه Enter از شما پسورد root دیتابیس پرسیده خواهد شد که با واردکردن آن مرحله ایمپورت دیتابیس در ssh آغاز شده و بسته به سختافزار سرور، حجم دیتابیس، پارامتر max_allowed_packet و سرعت اینترنت شما میتواند متفاوت باشد.
استفاده از روش ذکر شده جهت ایمپورت دیتابیس در ssh به جهت نوع دسترسی و قابلیت اطمینان کمترین خطا و مشکل را حین ایمپورت بر روی ایجاد خواهد کرد.
نکته: چنانچه بر روی سرور شما سایتهای زیادی در حال میزبانی هستند، توصیه میکنیم اقدام ایمپورت دیتابیس را به ساعاتی از روز موکول کنید که کمترین حجم ترافیکی بر روی سرور وجود داشته باشد تا این عمل باعث کندی و در مواردی باعث از down شدن سرور شما نشود.