Як вирішити тайм-аут у phpmyadmin?


79

Я хочу імпортувати величезні ( принаймні 300 мб) скрипти sql через phpMyAdmin.

Я пробував:

post_max_size = 750M
upload_max_filesize = 750M
max_execution_time = 300
max_input_time = 540
memory_limit = 1000M

у своєму php.iniфайлі, але я все ще отримую помилки таймауту під час імпорту.


ваш скрипт займає більше 300 секунд для виконання, тому тайм-аут .. спробуйте збільшити його ще ... FYI u вам слід спочатку поглянути на ваш код, чому сценарій займає занадто багато часу для запуску
swapnesh

Яку помилку ви точно отримуєте ?
Пекка

max_execution_time = 550 це правильно?
user1811486

Я отримав помилки: "Час очікування сценарію минув, якщо ви хочете завершити імпорт, повторно надішліть той самий файл, і імпорт відновиться."
user1811486

3
Тоді чому б не повторно подати той самий файл? phpMyAdmin здається досить розумним, щоб вирішити проблему?
Пекка

Відповіді:


140

Якщо навіть після багаторазового завантаження ви все ще отримуєте помилку з часом очікування, змініть налаштування в

\phpmyadmin\libraries\config.default.php

від $cfg['ExecTimeLimit'] = 300;до $cfg['ExecTimeLimit'] = 0;та перезапустіть. Зараз немає обмеження часу виконання (довіра, мова йде про локальний сервер).

Джерело: Змінити час очікування сценарію в phpmyadmin


32
Або ще краще, помістіть це налаштування у свій phpmyadmin/config.inc.php.
Будо

Я спробував вашу пропозицію, @canaaerus, але це зіпсувало мою систему навіть після того, як я змінив її місце, нарешті скасував її та перезапустив сервер apache2. Тепер в ньому написано Error SQL query: DocumentationEdit Edit SELECT commentFROM phpmyadmin.pma__column_infoWHERE db_name = 'bot4a' AND table_name = '' AND column_name = '(db_comment)' MySQL сказав: Документація # 1100 - Таблиця 'pma__column_info' не була заблокована БЛОКОВАНИМИ СТОЛАМИ
Родріго

1
@Rodrigo: Я майже впевнений, що це не має нічого спільного з вищевказаним налаштуванням. Також вам слід задати це нове питання, а не як коментар.
BODO

2
config.inc.phpє на /Library/Application Support/appsolute/MAMP PRO/phpMyAdminз MAMP на Mac OS X
Шон Дичко

Як каже @chuchunaku - ЗАМІСТІ ТРЕБА ЗМЕНИТИ config.inc.php, або це не спрацює. Це налаштування, які він повертає до неактивної конфігурації.
Бісандр

15

У мене була та сама проблема, і я використовував командний рядок для імпорту файлу SQL. Цей спосіб має 3 переваги:

  1. Це дуже простий спосіб, запустивши лише 1 командний рядок
  2. Це працює швидше
  3. Він не має обмежень

Якщо ви хочете зробити це, просто виконайте такі 3 кроки:

  1. Перейдіть до цього шляху (я використовую вамп):

    C: \ wamp \ bin \ mysql \ mysql5.6.17 \ bin>

  2. Скопіюйте свій файл sql усередині цього шляху (наприклад, file.sql)

  3. Виконайте цю команду:

    mysql -u ім'я користувача -p ім'я_бази даних <файл.sql

Примітка: якщо у вас вже встановлений шлях змінної середовища msql, вам не потрібно переміщати файл file.sql у каталог bin, а слід переходити лише до шляху до файлу.


Для інших на osx; вам, можливо, доведеться скористатися ./mysql(а не просто mysql)
Ніколай Крюгер

14

Я використовую версію 4.0.3 MAMP разом із phpmyadmin. У верхній частині /Applications/MAMP/bin/phpMyAdmin/libraries/config.default.php написано:

НЕ РЕДАГУЙТЕ ЦЕЙ ФАЙЛ, ВМІНАТИ РЕДАГУВАТИ config.inc.php !!!

Зміна наступного рядка в /Applications/MAMP/bin/phpMyAdmin/config.inc.php та перезапуск MAMP спрацювали для мене.

$cfg['ExecTimeLimit'] = 0;

Деякі інші відповіді говорять про редагування файлу із написом "НЕ РЕДАКТУЙТЕ ЦЕЙ ФАЙЛ", чому люди ігнорують повідомлення? Ця відповідь дає надійну пораду і не ігнорує повідомлення у верхній частині файлу.
Спенсер

12

Але якщо ви використовуєте Plesk, змініть налаштування в:

/usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/libraries/config.default.php

Змінити $cfg['ExecTimeLimit'] = 300;на$cfg['ExecTimeLimit'] = 0;

І перезапустіть за допомогою інтерфейсу Plesk або використовуйте:

/etc/init.d/psa restart і /etc/init.d/httpd restart


7

Якщо використовується Cpanel / WHM, розташування файлу config.default.phpзнаходиться нижче

/usr/local/cpanel/base/3rdparty/phpMyAdmin/libraries

і вам слід змінити $cfg['ExecTimeLimit'] = 300;на$cfg['ExecTimeLimit'] = 0;


4

Я мав проблему раніше в XAMPPlocalhost з phpmyadmin версії 4.2.11.

Збільшення тайм-ауту в php.iniтакож не допомогло.

Потім я відредагував, xampp\phpMyAdmin\libraries\config.default.phpщоб змінити значення $cfg['ExecTimeLimit'], яке за замовчуванням було 300.

Це вирішило моє питання.


4

Якщо хтось із вас випадково використовує WAMP, тоді принаймні в поточній версії (3.0.6 x64) є файл, <your-wamp-dir>\alias\phpmyadmin.confякий замінює деякі ваші параметри php.ini.

Редагувати цю частину:

# To import big file you can increase values php_admin_value upload_max_filesize 512M php_admin_value post_max_size 512M php_admin_value max_execution_time 600 php_admin_value max_input_time 600


ДЯКУЮ за розміщення цього повідомлення - справді мені допомогло!
Грег Буркетт

Це справді працює. file \ alias \ phpmyadmin.conf замінює файл conf.inc.php, який знаходиться в каталозі app \ phpmyadmin
gogagubi

1

Жодна з наведених відповідей не вирішила це для мене.

Я навіть не можу знайти папку "бібліотеки" у своєму xampp - ubuntu також.

Отже, я просто перезапустив, використовуючи такі команди:

sudo service apache2 restart

і

sudo service mysql restart
  • Щойно перезапустив apache та mysql. Знову увійшов до phpmyadmin, і він працював як зазвичай.

Дякую мені .. !!


0

У мене теж була ця проблема, і я спробував різні методи розширення пам'яті, які я знайшов в Інтернеті, але мав із цим більше проблем. Я вирішив використовувати команду консолі MySQL source, і, звичайно, вам не доведеться турбуватися про максимальний час виконання та обмеження phpMyAdmin або PHP.

Синтаксис: source c:\path\to\dump_file.sql

Примітка: Краще вказати абсолютний шлях до файлу дампа, оскільки робочий каталог mysql може бути невідомим.


-2

Щоб збільшити час очікування сеансу phpMyAdmin, відкрийте config.inc.php у кореневій директорії phpMyAdmin і додайте це налаштування (де завгодно).

$cfg['LoginCookieValidity'] = <your_new_timeout>;

Де якесь число більше 1800.

Примітка:

Завжди пам’ятайте, що короткий термін служби cookie - це цілком корисно для сервера розробки. Тому не робіть цього на виробничому сервері.

Довідково

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.