Перейти к содержимому

Как загрузить большую базу в phpmyadmin

  • автор:

Как импортировать большую базу данных MySQL в обход ограничений phpMyAdmin

Недавно спрашивали, каким образом можно импортировать на сервер большую базу данных MySQL. Известно, что phpMyAdmin по-дефолту имеет ограничения на размер импортируемой БД.

Если ваш дамп не намного превышает допустимый лимит, можно его разбить на несколько частей и импортировать в несколько заходов. Это оправдано если, к примеру, лимит составляет 2 Гб, а ваша база имеет размер 5-10 Гб. Понятно, что «резать» базу весом 100 Гб на 50 частей — процесс довольно трудоемкий и затратный в плане временнЫх ресурсов.

Существует несколько вариантов решения этой задачи.

Редактируем конфиг веб-сервера

На VDS/VPS особых проблем с этим не наблюдается, достаточно лишь подкорректировать конфиг. А именно, в php.ini увеличить допустимые максимальные значения для загружаемых на сервер файлов, максимальный размер для файлов передаваемых методом POST:

post_max_size = 2000M upload_max_filesize = 2000M

Кроме этого, если ваша БД очень большая, следует увеличить максимально допустимое время выполнения скрипта.

max_execution_time = 32000 max_input_time = 32000

И на всякий случай можно увеличить размер допустимого объема оперативной памяти:

memory_limit = 512M

После внесения изменений, обязательно перезагрузите веб-сервер.

Понятно, что этот способ не подойдет для виртуального хостинга, т.к. он не подразумевает возможности редактирования конфигов.

Sypex Dumper

Можно воспользоваться сторонним софтом. И первое приложение на которое стоит обратить внимание — это Sypex Dumper.

Впервые воспользовавшись им много лет назад и оценив все его возможности и достоинства, я могу смело повесить ему ярлык «Must Have». Sypex Dumper — серверное приложение на PHP не требующее установки. Его достаточно скопировать, к примеру, в корень вашего сайта в директорию sxd и вызвать его в браузере: http://Ваш_Сайт/sxd/. Стоит заметить, что предварительно в директорию backup следует поместить дамп вашей базы данных. После инициализации скрипта вы увидите панель авторизации для подключения к базе. Вводим свой логин и пароль. Хост и порт — опционально, только если они специфические.

Импортируем БД с помощью Spydex Dumper

После авторизации можно перейти непосредственно к иморту БД. В поле «База данных» будет выбрана БД к которой вы подключены, а в поле «Файл» вы увидите ранее загруженный вами дамп в директорию Backup.

Импортируем БД с помощью Spydex Dumper

Для большинства случаев никакие дополнительные настройки больше не нужны и можно смело запускать импорт, нажав на кнопку «Выполнить». Импорт, в зависимости от размера БД и вашей скорости соединения с Интернет может занять некоторое время. Во время импорта вы можете видеть какие именно таблицы импортируются в данный момент в базу. По завершению работы скрипта вы увидите лог выполнения. Он выглядит, примерно, так:

Импортируем БД с помощью Spydex Dumper

Вот, собственно, и все — база импортирована!

Консоль

Импорт через консоль рассматривать не будем. Я думаю, люди, пользующиеся консолью без меня знают как импортировать любую БД. А простым пользователям без специальной подготовки лучше туда не соваться. Так как выполнение некоторых команд может привести к серьезным последствиям, вплоть до полного падения сервера.

В заключение

Я не берусь утверждать, что Sydex Dumper — это единственное и правильное решение. Существуют и другие более элегантные способы, которые требуют от пользователя определенных знаний и соответствующие доступы к настройках сервера.

Но в условиях виртуального хостинга, Sydex Dumper, безусловно, будет вашим незаменимым помощником.

⚡️ Подписывайся на мой канал @DanilinBiz и ты узнаешь, как зарабатывать достойные деньги на фрилансе.

Автор Иван Данилин

Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.

Комментарии

Просто спасение, а не статья! Спасибо огромное, что поделились такой утилитой. Пол дня голову ломал, почему-то не импортировалась БД.

Иван Данилин

Пожалуйста! Когда-то давно она меня тоже очень выручила. Рекомендую разобраться с SSH, тогда вообще отпадёт необходимость в каких-либо утилитах

Спасибо! Очень выручила данная статья.

На VDS/VPS особых проблем с этим не наблюдается, достаточно лишь подкорректировать конфиг. А именно, в php.ini …

и не сказать где находится этот файл? смысл в таком совете? Я понятия не имею, в какой из миллиона папок он лежит. А поиска по серверу нет, это не виндоуз…

Иван Данилин

Путь php.ini зависит от установленной ОС, конфига, и потом их может быть несколько. Узнать путь используемого php.ini можно с помощью ф-ии phpinfo(). Создайте php-файл, добавьте в него эту ф-ю и выполните в браузере. В Loaded Configuration File будет указан путь к конкретно вашему php.ini

Как импортировать большие базы данных

Импортируя большую базу данных через веб-приложение phpMyAdmin возможно столкнуться с появлением ошибки, сообщающей о превышении лимита по максимальному размеру загружаемого файла. Не всегда получается увеличить данный лимит, но на большинстве хостингов импорт базы данных возможно так же произвести средствами панели управления хотингом.

Для примера произвести импорт большой базы данных через панель управления хостингом ISPmanager возможно следующим образом.
После входа в панель управления хостингом переходим в раздел «Главное» -> «Базы данных», выбираем базу данных, в которую необходимо импортировать дамп базы данных, после чего нажимаем на расположенную в верхней части панели кнопку «Закачать»:

Откроется окно с кнопкой «Выбрать файл», нажав на которую станет возможно выбрать требуемый дамп базы данных на своем компьютере.
После выбора дампа базы данных нажимаем на кнопку «Ок», чтобы начать импорт:

В зависимости от размера импортируемой базы данных импорт может занять некоторое время.

Советуем прочитать:

  • При импорте БД выдает ошибку «Unknown…
  • Установка Drupal из каталога скриптов в ISPmanager
  • Установка WordPress из каталога скриптов в ISPmanager
  • Установка Joomla из каталога скриптов в ISPmanager
  • Основные команды MySQL?

Как импортировать базу данных

Данный интерфейс PhpMyAdmin также предоставляется в комплекте с cPanel и DirectAdmin.

В случае наличия PhpMyAdmin процесс работы с базой существенно упрощается, т.к. все действия будут производиться через веб-интерфейс.

  • Подключаемся к PhpMyAdmin с правами mysql-пользователя – root (не путать с root-пользователем в Linux, т.к. это разные пользователи). По умолчанию, адрес доступа в PhpMyAdmin следующего вида:
http://ip-адрес-сервера/phpmyadmin
  • После входа нажимаем кнопку Импорт.

Импорт базы данных через PhpMyAdmin

  • В появившейся форме нажимаем на Browse и указываем путь к нашему sql-файлу с дампом базы.

Импорт на текущий сервер

  • После указания файла выбираем нужную кодировку и нажимаем на кнопку ОК внизу страницы.
  • В результате будет загружена база данных из указанного файла. По окончанию загрузки база появиться в списке остальных существующих на сервере.

Список существующих на сервере баз данных

  • Теперь необходимо создать пользователя для этой базы. Для этого кликаем на названии нашей базы данных, после чего в верхней навигационной панели нажимаем на кнопку Привилегии.

Кнопка Привилегии в верхней навигационной панели

  • В появившейся форме кликаем на Добавить пользователя.

Пользователи с правами доступа к database

  • В появившейся форме заполняем поля в разделе Информация учетной записи аналогично тому как указано в примере.

Информация учетной записи

  • Далее переходим к разделу База данных для пользователя и убеждаемся в том, что там установлена галочка перед пунктом Выставить полные привилегии на базу данных.

База данных для пользователя

  • При необходимости можно наделить этого пользователя глобальными привилегиями, но в нашем примере они не нужны.
  • После указания необходимых прав нажимаем на кнопку ОК, расположенную внизу страницы, в результате чего созданный пользователь появится списке имеющих права доступа к данной базе.

Пользователи с правами доступа к базе данных

Импорт базы данных через PhpMyAdmin версии 2.*

  • Подключаемся к PhpMyAdmin с правами mysql-пользователя — root.
  • Нажимаем на кнопку Импорт на главной странице.

Импорт базы данных через PhpMyAdmin

  • В появившейся форме нажимаем на Обзор и указываем путь к sql-файлу с дампом базы.

Путь к sql-файлу с дампом базы

  • После указания файла выбираем нужную кодировку и нажимаем на кнопку ОК внизу страницы.
  • В результате будет загружена база данных из указанного файла. По окончанию загрузки база появиться в списке остальных существующих на сервере. В нашем случае была загружена база Database, в которой есть таблица orders.

Загруженная база данных из указанного файла

База данных PhpMyAdmin

  • Теперь необходимо создать пользователя для этой базы. Для этого на главной странице PhpMyAdmin нажимаем на кнопку Привилегии.

Кнопка Привилегии

  • В появившейся форме кликаем на Добавить пользователя.

Обзор учетных записей

  • В появившейся форме заполняем поля в разделе Информация учетной записи аналогично тому, как указано в примере.

Информация учетной записи

  • При необходимости можно наделить пользователя глобальными привилегиями и установить ограничения на использование ресурсов. По окончании нажимаем на кнопку ОК внизу страницы.

Глобальные привилегии

  • После добавления пользователя выбираем его в списке существующих в разделе Привилегии путём нажатия на кнопку редактирования привилегий.

Редактирование привилегий

  • В появившейся странице переходим к пункту Привилегии уровня базы данных, выбираем из списка добавленную базу данных.

Привилегии уровня базы данных

  • После этого в пункте Привилегии уровня базы данных указываем необходимые привилегии для пользователя. Из соображений безопасности настоятельно не рекомендуется сразу устанавливать пользователю без необходимости полные привилегии. В дальнейшем вы в любой момент сможете эти привилегии изменить, если текущих будет недостаточно. По окончании нажимаем на кнопку ОК.

Редактирование привилегий

  • На этом процесс импорта закончен.

Импорт базы данных без PhpMyAdmin

При отсутствии PhpMyAdmin все описанные действия необходимо выполнять вручную через консоль. Но перед этим необходимо загрузить файл с дампом базы на VPS. Для этого можно использовать подключение по SFTP-протоколу с правами root.

  • Установив SFTP соединение, копируем sql-файл в любую директорию на сервере, например, /root.

Импорт базы данных без PhpMyAdmin

  • Теперь подключаемся к VPS через SSH-консоль с правами root. Такой уровень доступа вы получаете по умолчанию, заказав любой хостинг виртуальных серверов.
  • Подключаемся к серверу MySQL командой:
mysql -u root –p
  • Вводим пароль mysql-пользователя root и нажимаем Enter. В результате в консоли будет выведено приветствие «Welcome to the MySQL monitor.» с указанием id сессии и версии MySQL.
  • Для начала необходимо создать базу данных командой:
CREATE DATABASE database_name;
  • Зайдем в созданную базу данных при помощи команды:
USE database_name;
  • Для импорта дампа БД используется команда source. В случае с файлом database.sql команда будет следующей:
source /root/database.sql;

Визуальный пример выполнения этой команды представлен ниже:

mysql> source /root/database.sql; Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.03 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 1 row affected (0.00 sec) Database changed Query OK, 0 rows affected (0.01 sec) Query OK, 4 rows affected (0.01 sec) Records: 4 Duplicates: 0 Warnings: 0 Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql>
  • Проверить наличие загруженной БД database можно командой:
show databases;

Пример выполнения этой команды ниже:

mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | database | | mysql | | phpmyadmin | +--------------------+ 4 rows in set (0.00 sec)
  • Теперь необходимо создать пользователя для этой базы и наделить его соответствующими привилегиями. Ниже приведен пример создания пользователя db_user с паролем user_password и установкой полных прав на управление базой database:
  • Создаем пользователя:
CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'user_password';
  • Убираем глобальные привилегии:
GRANT USAGE ON * . * TO 'db_user'@'localhost' IDENTIFIED BY 'user_password';
  • Устанавливаем полные привилегии в пределах базы:
GRANT ALL PRIVILEGES ON `database` . * TO 'db_user'@'localhost';
  • Отключаемся от mysql-сервера командой:
quit;
  • На этом процесс импорта завершен.

как сделать импорт большой базы данных в phpMyAdmin?

Как импортировать большую базу данных в PHPMyAdmin,у меня она около 800Мб, как это сделать с помощью Terminal в Mac OS?

Отслеживать
задан 25 ноя 2015 в 16:22
radion_dev radion_dev
249 1 1 золотой знак 4 4 серебряных знака 22 22 бронзовых знака
Так вам в PhpMyAdmin или в терминале нужно? Может тогда заголовок изменить?
2 дек 2015 в 13:49

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

Консольная команда для импорта базы из sql файла

mysql -u[username] -p[password] db_name < dump.sql 

Отслеживать
ответ дан 2 дек 2015 в 13:22
Marsel Arduanov Marsel Arduanov
1,539 11 11 серебряных знаков 13 13 бронзовых знаков

Импорт большой базы данных с помощью консоли (терминала):

1) Необходимо загрузить файл с дампом базы на VPS. Для этого можно использовать подключение по SFTP-протоколу с правами root.

Установив SFTP соединение, копируем sql-файл в любую директорию на сервере, например, /root.

2) Теперь подключаемся к VPS через SSH-консоль с правами root. Такой уровень доступа вы получаете по умолчанию, заказав любой хостинг виртуальных серверов.

Подключаемся к серверу MySQL командой:

mysql -u root(Имя пользователя с помощью которого вы входите в phpmyadmin) –p

Например, mysql -u oleg –p

Вводим пароль mysql-пользователя root и нажимаем Enter. В результате в консоли будет выведено приветствие «Welcome to the MySQL monitor.» с указанием id сессии и версии MySQL.

3) Зайдем в созданную базу данных при помощи команды:

USE database_name (имя базы данных)

Например, USE nano (имя базы данных)

4) Для импорта дампа БД используется команда source. В случае с файлом database.sql команда будет следующей:

Визуальный пример выполнения этой команды представлен ниже:

mysql> source /root/database.sql; Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.03 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 1 row affected (0.00 sec) Database changed Query OK, 0 rows affected (0.01 sec) Query OK, 4 rows affected (0.01 sec) Records: 4 Duplicates: 0 Warnings: 0 Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *