PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش import فایل های حجیم SQL



mihanservice
October 1st, 2012, 14:27
یکی از مشکلاتی که من همیشه با اون روبرو بودم ، وارد کردن فایل های حجیم SQL در phpmyadmin بود . مثلا من یک سایت اینترنتی راه اندازی کردم و بعد از چند سال می خوام از بانک اطلاعاتی اون توسط نرم افزار phpmyadmin خروجی بگیرم و توی phpmyadmin در هاست دیگری وارد (Import) کنم . اگر حجم فایل خروجی (Export) شما کم باشه که خب مشکلی وحود نداره . ولی اگر شما با یک فایل ۱٫۵ گیگابایتی مواجه باشید چه ؟



دو راه حل وجود داره :
۱- زمان Timeout رو در PHP بالا ببرید و حداکثر حجم قابل آپلود در php رو در فایل php.ini زیاد کنید ، و در phpmyadmin حدودا ۳-۴ روز منتظر بمانید تا ۱٫۵ گیگابیت import شود !


۲- راه دوم بسیار شگفت انگیز است . Import فایل ۱٫۵ گیگاباتی فقط در ۴ دقیقه


برای این کار نیاز به محیط Shell نرم افزار MySQL نیاز داریم . چیزی شبیه تصویر زیر : (تصویر زیر محیط shell در ویندوز هست . برای لینوکس از همون putty می شه استفاده کرد)

http://www.phptopsecret.com/wp-content/uploads/2012/02/Untitled-1-300x156.png (http://www.phptopsecret.com/wp-content/uploads/2012/02/Untitled-1.png)

بعد از کلیک و باز کردن محیط Shell ، شما به یه دستور برای Import نیاز دارید ، که در زیر مشاهده می کنید :



mysql -u username -p -h localhost DATA-BASE-NAME < data.sql
در کد بالا ، به جای username باید نام کاربری mysql رو وارد کنید . به جای DATA-BASE-NAME هم باید نام بانک اطلاعاتی که از قبل ایجاد کردید رو وارد کنید . با جای data.sql هم باید مسیر فایل sql خودتون رو بدید (مثلا c:\mydata.sql).

بعد از Enter زدن از شما رمز عبور MySQL رو می خواد که اگر ندارید یا پیشفرض سیستم شما خالی هست ، دوباره Enter بزنید .

حالا فقط کافیه صبر کنید تا import انجام بشه



شاد باشید

n4ser
October 2nd, 2012, 21:57
خیلی ممنون از اموزشتون

mihanservice
October 2nd, 2012, 22:11
ممنون
امیدوارم مفید بوده باشه

arc1o0
October 3rd, 2012, 01:30
ممنون از روش تون اگه جواب بده خیلی عالی هستش

منتها یک نکته:

شما باید حتما وی پی اس یا سرور داشته باشید تا بتونید از این روش استفاده کنید در غیر این صورت بهترین راه MySqlDumper هستش

AR3N4
December 3rd, 2012, 12:55
من یک دیتابیس 5 گیگابایتی دارم اما وقتی از این روش استفاده میکنم مقداری از تیبل ها منتقل میشه و در وسط این خطا رو میده :

MySQL server has gone away (error 2006)

دوستان راه حل خاصی برای این مشکل میدونن ؟
میزان محدودیت رم رو روی 1 گیگابیت گذاشتم.

s98
December 4th, 2012, 07:51
عالی بود