همانطور که می دانید Import بک آپ دیتابیس MySQL از طریق PHPMyAdmin دارای محدودیت هایی می باشد. از طرف دیگر ، کاربرد روز افزون وب سایت های پویا و در کنار آن دیتابیس MySQL به عنوان یک سیستم مدیریت پایگاه داده قدرتمند باعث شده تا امروزه با دیتابیس های حجیم مواجه شویم. روشی دیگر برای ایجاد جداول در دیتابیس MYSQL، استفاده از query می باشد.
جهت استفاده از این روش، مراحل زیر را دنبال نمایید:
ابتدا باید وارد دیتابیس سرور خود شوبد و عملیات مورد نظر را در آنجا انجام دهید.
با توجه به نوع سرویس خود یکی از دو روش زیر را برای ورود به PhpMyAdmin دنبال نمایید:
الف- در صورتی که سرویس هاست شما 2008 می باشد:
از طریق آدرس cp.yourdomain(به جای yourdomain نام دامین خود را وارد نمایید) و وارد نمودن نام کاربری و رمز عبور مربوطه، وارد کنترل پنل wsp شوید. سپس آیکون database را انتخاب و گزینه MYSQL 5.x را انتخاب نمایید. در صفحه جاری روی گزینه Browse database که در مقابل نام دیتابیس شما می باشد کلیک نمایید.
ب- در صورتی که سرویس هاست شما 2003 می باشد:
از طریق آدرس cp.yourdomain (به جای yourdomain نام دامین خود را وارد نمایید) و وارد نمودن نام کاربری و رمز عبور مربوطه، وارد کنترل پنل Helm شوید. سپس روی Domains و بعد روی نام دامین خود کلیک نمایید. در صفحه جاری گزینه Database Manager را انتخاب و سپس روی نام دیتابیس مربوطه کلیک نمایید. حال می توانید از قسمت connection information آدرس دیتابیس سرور مربوطه را بدست آورید(مانندsql2.yourdomain/phpmyadmin به خاطر داشته باشید که باید از نام دامین خود به جای yourdomain استفاده نمایید) حال کافی است آدرس مربوطه را در آدرس بار مرورگر خود وارد نمایید.
در صورتی که موفق به یافتن آدرس Phpmyadmin نشدید می توانید از این راهنما استفاده کنید.
پس از لود شدن صفحه اول Phpmyadminپنجره ای برای وارد کردن مشخصات کاربری دیتابیس ظاهر می شود.
پس از وارد کردن نام کاربری و کلمه عبور، صفحه زیر ظاهر می شود. روی نام پایگاه داده خود کلیک نمایید.
در قسمت بالایی پنجره، روی " SQL " همانند شکل زیر کلیک نمایید.
همانطور که در شکل زیر مشاهده می نمایید، در بخش SQL محلی برای وارد کردن کدهای پایگاه داده وجود دارد.
فایل مربوط به پایگاه داده خود را توسط یک برنامه ویرایشگر متن مانند Notepad++ باز نمایید و کدهای موجود در آن را انتخاب و Copy نمایید. سپس در محل مربوطه دربخش SQL، کدهای کپی شده را Paste نموده و بر روی دکمهGo کلیک نمایید. بعد از اجرای این پروسه، جداول و عناصر پایگاه داده ایجاد شده و پیغام Your SQL query has been executed successfully در پایین صفحه نمایش داده می شود .
بررسی خطاهای احتمالی در هنگام ریستور دیتابیس
در ابتدا مطمین شوید نام دیتابیسی که ایجاد کرده اید با نام دیتابیسی که در داخل query قرار است به آن اشاره شود یکسان باشد. به علاوه از سازگار بودن نسخه بک آپ خود با دیتابیس کنونی که ایجاد کرده اید مطمین شوید.
در ذیل به بررسی برخی از خطاهای متدوال می پردازیم.
MySQL Error 2006 : MySQL server has gone away
به هر دلیلی اگر در طی فرایند اجرای اتصال قطع شود این پیغام خطا را مشاهده خواهید کرد.در Mysql ساختار بدین صورت در نظر گرفته شده که کوئری ها همیشه کوتاه هستند تا بتوانند یکجا به سرور ارسال شوند.
زمانی که Mysql بسته ای را دریافت کند که ناقص و یا بسیار بزرگ باشد، اینگونه فرض می کند که مشکلی از سمت Client رخ داده ، لذا اتصال را قطع می کند. در این حالت کوئری بعدی در می یابد که ارتباط با سرور Mysql قطع شده است و پیغام مذکور را نمایش می دهد.
در صورتی که حجم دیتابیس شما زیاد است می توانید از big dump استفاده کنید. راهنمای کامل نحوه استفاده از سرویس Big Dump را می توانید در این لینک مشاهده کنید.
در حالت دیگر، زمانی که سطر های زیادی توسط دستورات Insert و یا Replace ایجاد می شود باعث بروز این مشکل می شود. این دستورات بدون توجه به تعداد سطرهایی که باید ایجاد شوند، در خواست جداگانه ای را برای هر سطر ارسال می کنند. لذا برای جلوگیری از بروز این مشکل تعداد در خواست هایی که به ازای هر سطر توسط دستور Insert و یا Replace فرستاده می شود باید کاهش یابند.
Create table if not exist
توضیحات کامل به همراه راه حل رفع این مشکل را می توانید در این لینک مشاهده کنید.
به هم ریختگی کاراکترهای فارسی :
این مشکل که معمولا پس از ریستور دیتابیس بوجود می آید را می توان به طریق زیر برطرف کرد.
با استفاده از ویرایشگر Notepad++ فایل دیتابیس را باز کرده و سپس از منوی Encoding گزینه Convert to UTF-8 را انتخاب نمایید،در آخر نیز فایل را ذخیره کنید.
در نظر داشته باشید در برخی مواقع در صورتی که Encoding اشتباهی را انتخاب کرده باشید ممکن است پیغام زیر را نیز مشاهده می کنید :
You have an error in your SQL syntax; check the manual that corresponds to your MYSQL server version for for right syntax