پیام خطا Maximum execution time of 300 برای چیه؟

من یه دیتابیس دارم که حدود 56 مگا بایت هستش و متعلق به سایت قبلی من هست ( که با نیوک کار شده بود ) اما الان می خوام اون رو تبدیل به دیتابیسی بکنم که لا اقل یوزهای دیتابیس قبلی رو در دیتابیس مامبو من شناسایی کنه. خوب منتها یه مشکلی با AppServ دارم اون هم این هست که وقتی میخوام دیتابیس رو ایمپورت کنم در صفحه مربوطه پیام (Max: 2,048KB) درج شده و عملا امکان وارد کردن دیتابیسی با حجم 56 مگا بایت وجود نداره.

کارهای زیر رو انجام دادم: (ضمنا من از برنامه AppServ به جای easyphp استفاده می کنم)

1- شما برای import کردن دیتابیس خود در phpmyadmin (در حالت لوکال) از هر برنامه کمکی هم که استفاده کنید بیش از 2 مگابایت مجوز آپلود اطلاعات دیتابیس را نخواهید داشت.
2- در صورت نیاز به آپلود بیش از 2 مگا بایت می باست تغییرات زیر را در فایل php.ini که در مسیر Windows -----> php.ini قرار دارد بدهید که این تغییرات عبارت اند از:

کد ذیل را در فایل php.ini جستجو کنید:

کد:
memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)و آنرا به شکل زیر ویرایش کنید. (به جای مقدار 8 مگا بایت، مقدار 100 مگابایت جایگزین شده)

کد:
memory_limit = 100M ; Maximum amount of memory a script may consume (100MB)
کد زیر را در فایل php.ini جستجو کنید:

کد:
; Maximum size of POST data that PHP will accept.
post_max_size = 8Mو آنرا به شکل زیر ویرایش کنید:

کد:
; Maximum size of POST data that PHP will accept.
post_max_size = 100M
کد زیر را در فایل php.ini جستجو کنید:

کد:
; Maximum allowed size for uploaded files.
upload_max_filesize = 8Mو آنرا به شکل زیر ویرایش کنید:

کد:
; Maximum allowed size for uploaded files.
upload_max_filesize = 100M

بعد از انجام مراحل بالا و ذخیره php.ini سیستم خودم را ریستارت کردم

خوب تا اینجا موفق شدم تا مجوز آپلود فایل های sql ی که بیش از 8 مگابایت هستند را بدست آوریم.

یک مشکل: بعد از انجام اعمال بالا و با توجه با اینکه من مجوز اپلود فایلی در حدود 100 مگابایت را در دیتابیس خودم ایجاد کردم بعد از آپلود با پیام خطای زیر مواجه شدم که امید وارم در این بخش با کمک و راهنمایی اساتید گرامی بتوانم این مشکل را نیز مرتفع کنم.

کد:
Fatal error: Maximum execution time of 300 seconds exceeded in d:\appserv\www\phpmyadmin\libraries\read_dump.lib.php on line 112

لطفا من رو راهنمایی کنید که چطور می توانم این دیتابیس رو در لوکال وارد کنم . با تشکر
 

parsmizban

Member
max_execution_time = 14400 ; Maximum execution time of each script, in seconds

این رو از PHP.ini تنظیم کنین من زیاد کردمش
 
در این نشانی:

C:\AppServ\www\phpMyAdmin

ا
اگر فایل config.inc.php را ویرایش کنم و به جای مقدار زیر 300، مقداری بیشتر قرار بدم آیا امکان این هست مشکلم حل بشه


کد:
$cfg['ExecTimeLimit'] = 300;


متاسفانه ظاهرا مشکل از تنظیمات فایل config.inc.php نبوده و باید ریشه این مشکل رو در جای دیگری جستجو کرد. من به جای مقدار 300 عدد 1000 را قرار دادم و آپاچی و mysql را ریستارت نمودم و پس از ایمپورت کردن دیتابیس با همان مشکل قبلی مواجه شدم با این تفاوت که فقط شماره لاین خطا تغییر کرده.


کد:
Fatal error: Maximum execution time of 1000 seconds exceeded in d:\appserv\www\phpmyadmin\libraries\read_dump.lib.php on line 77





به جای مقدار

کد:
max_execution_time = 30 ; Maximum execution time of each script, in seconds

عبارت بزرگتری رو قرار دادم و تست کردم اما متاسفانه موفق نشدم حالا می خوام مقدار

کد:
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data

را هم تست کردم و مقدار 1000 را به هر دو حالت دادم اما متاسفانه باز با پیام خطای بالا مواجه شدم و موفق به ایمپورت کردن دیتابیس 56 مگابایتی خودم نشدم اگه نکته ای بنظرتون میرسه که ممکنه من رو راهنمایی کنه به حل این مشکل لطفا دریغ نکنید.
با تشکر
 

jhoseini

Member
راه حلی که جناب parsmizban معرفی کردن : max_execution_time = 14400; مدت زمان مجاز برای load شدن صفحه رو تا4 ساعت بالا میبره، در صورتی که با تنظیم این مقدار توی php.ini به نتیجه نرسیدید (که بعید میدونم) شاید با اضافه کردن کد زیر به قسمت بالای اسکریپت (احتمالا phpmyadmin) مشکل حل شه
PHP:
ini_set('max_execution_time',0);
acigar.gif
 

miladmovie

Active Member
تا اونجا که من یادمه phpmyadmin یک تنظیمات داره که بهش می گی حداکثر سایز فایل backup چقدر باشه
حواست باشه اون رو هم چک کنید
 
بعد از سرچ های مختلفی که در اینترنت کردم متوجه شدم اصولا ایمپورت کردن دیتابیسی با حجم بالا به این شکل کار اشتباه و غلطی هست به لحاظ اینکه درصد خطا بالا بوده و امکان وارد کردن همه اطلاعات (فارسی) بصورت صحیح نمی باشد. اما روش دیگری هست که از mysql 4.1 کمک گرفته و با استفاده از دستور:
mysql -u DATABASEUSER -p DATABASENAME < FILENAME.sql
امکان ایمپورت کردن دقیق و کامل اطلاعات وجود خواهد داشت اما من نسخه mysql 4.1 رو دریافت و طبق راهنمای ارائه شده: http://www.idevelopment.info/data/MySQL/DBA_tips/Installing/WIN417_4.shtml#Installing MySQL
برنامه رو نصب کردم که بعد از نصب با وارد کردن پسورد در صفحه داس مانند مثلا وارد mysql می شم (دقیقا مثل پنجره داس در ویندوز) اما دقیقا نمی دونم چطور باید از این دستور استفاده کرد. اصلا شاید نرم افزار رو اشتباه دانلود کردم. لطفا در این خصوص من رو راهنمایی کنید
 

جدیدترین ارسال ها

بالا