Вопрос или проблема
Я не могу изменить размер файла, который phpmyadmin принимает для импорта баз данных на моем тестовом сервере.
Я изменил все значения, о которых имею представление в my.cnf
:
max_packet_size
Key_buffer
или размер загружаемого файла и значение max_post_size
в каждом файле php.ini
, который я нашел в системе.
Принятый размер файла на экране импорта все еще остается 8,192kib.
Чтобы увеличить размер импорта файла MySQL phpmyadmin в Ubuntu 16.04 или новее, выполните следующие шаги. В новейшей версии Ubuntu у вас может быть либо PHP 5, либо PHP 7.
Шаг 1: откройте php.ini
соответствующей версии PHP.
-
Для PHP v5.0
sudo -H gedit /etc/php5/apache2/php.ini
-
Для PHP v7.0
sudo -H gedit /etc/php/7.0/apache2/php.ini
-
Для PHP v7.1
sudo -H gedit /etc/php/7.1/apache2/php.ini
-
Для PHP v7.2
sudo -H gedit /etc/php/7.2/apache2/php.ini
-
Для PHP v7.3
sudo -H gedit /etc/php/7.3/apache2/php.ini
Шаг 2: Теперь увеличьте следующие параметры в файле php.ini
.
memory_limit = 1500M
post_max_size = 1500M
upload_max_filesize = 1500M
Пожалуйста, обратите внимание: post_max_size должен быть больше, чем upload_max_filesize
Шаг 3: Теперь вы должны перезапустить ваш apache сервер, чтобы изменения вступили в силу.
sudo service apache2 restart
Первое, что нужно проверить (или попросить вашего хостинг-провайдера проверить) — это значения max_execution_time
, upload_max_filesize
, memory_limit
и post_max_size
в файле конфигурации php.ini. Все эти три настройки ограничивают максимальный размер данных, которые могут быть отправлены и обработаны PHP.
Обратите внимание, что post_max_size
должен быть больше, чем upload_max_filesize
.
-
создайте страницу info.php и проверьте все детали о файле
<?php phpinfo(); ?>
-
запустите в вашем браузере, найдите upload_max_filesize и post_max_size, измените на значение по умолчанию 2M на 80M.
-
Запустите
sudo -H gedit /etc/php5/apache2/php.ini
-
измените оба значения
upload_max_filesize
иpost_max_size
измените значение по умолчанию с2M
на80M
-
Перезапустите apache
sudo /etc/init.d/apache2 restart
Установите переменные upload_max_filesize, post_max_size, memory_limit
в php.ini на правильные значения и перезапустите сервер, тогда это должно работать.
Если это не работает, проверьте с помощью phpinfo()
, отредактировали ли вы нужный php.ini.
Если вы используете Virtualmin, Webmin или Usermin, выполните следующие 2 шага в соответствии с изображением:
1.
Если ничего из этого не работает, это может означать, что Phpmyadmin использует совершенно другой файл!
В конце концов, я понял, что мне нужно было редактировать файл /etc/phpmyadmin/apache.conf
, затем перезапустить Apache.
.
Ответ или решение
Увеличение максимального размера загружаемых файлов в phpMyAdmin является распространенной задачей для администраторов серверов и веб-программистов. Это необходимо, когда размер вашей базы данных превышает текущие ограничения на загрузку, установленные в вашем сервере. В данной статье мы рассмотрим, как решить эту проблему, настроив несколько параметров как на уровне PHP, так и MySQL, а также приведем примеры применения.
Теория
Первоначально следует понимать, что на размер загружаемого файла может влиять несколько параметров:
-
PHP параметры:
upload_max_filesize
: определяет максимальный размер загружаемого файла.post_max_size
: максимальный размер данных, которые могут быть приняты методом POST. Должен быть больше, чемupload_max_filesize
.memory_limit
: максимальное количество памяти, которое скрипт может использовать.
-
MySQL параметры:
max_allowed_packet
: максимальный размер одного запроса или пакета данных, который сервер может обработать.
-
Настройки веб-сервера (Apache или Nginx):
- Например, ограничения на уровне модулей, обрабатывающих POST запросы.
Пример
Рассмотрим пример конфигурации на сервере с использованием Apache и PHP версии 7.x на Ubuntu 16.04:
-
Редактирование php.ini:
В зависимости от версии PHP, вам нужно найти и отредактировать файл
php.ini
:sudo -H gedit /etc/php/7.0/apache2/php.ini
Здесь измените следующие параметры:
upload_max_filesize = 150M post_max_size = 150M memory_limit = 512M
Ключевой момент:
post_max_size
всегда должен быть большеupload_max_filesize
. -
Обновление MySQL конфигурации:
В файле конфигурации MySQL
my.cnf
изменитеmax_allowed_packet
:[mysqld] max_allowed_packet=128M
-
Перезапуск серверов:
После каждого изменения конфигурации, перезапустите службы, чтобы они приняли новые настройки.
sudo service apache2 restart sudo service mysql restart
-
Проверка изменений с помощью phpinfo()
Создайте файл
info.php
в вашей веб-директории:<?php phpinfo(); ?>
Откройте этот файл в браузере и убедитесь, что параметры
upload_max_filesize
иpost_max_size
установлены корректно.
Применение на практике
Некоторые пользователи могут столкнуться с тем, что настройки не принимаются даже после выполнения вышеуказанных шагов. В таком случае проверьте:
-
Альтернативные файлы конфигурации, такие как
/etc/phpmyadmin/apache.conf
, особенно если изменения вphp.ini
не помогают. -
Правая версия php.ini: Используйте phpinfo() для проверки, какой именно файл
php.ini
использует ваша система. -
Виртуальные панели управления, такие как Virtualmin или Webmin, имеют свои собственные настройки и могут накладывать ограничения, обойдите их соответственно.
Следуя предложенным шагам, вы сможете увеличить допустимый размер загрузки файлов в phpMyAdmin, что позволит управлять большими базами данных без рисков нарушения целостности данных или ошибок, вызванных превышением лимитов. Принимая во внимание всю информацию, данная процедура позволит вам более эффективно работать с диапазоном задач, связанных с управлением базами данных и настройкой серверов.