Бывает возникает ситуация, в которой необходимо загрузить на сервер хостинга базу данных больше разрешенного хостингом в утилите управления базами данных phpMyAdmin- обычно этот предел установлен в

2Mb. Если это случается на виртуале, то обычно просто заливаю базу через ftp и прошу суппорт хостинга помочь в данном вопросе.

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

1. Варинт первый – выгружаем бэкап базы не целиком, а по несколько таблиц, чтобы файл не превышал наши лимиты. Основной минус данного решения- это то, что операцию выгрузки- загрузки необходимо будет проводить много раз, так что подойдет исключительно для тех у кого много свободного времени и нечем заняться на досуге.

2. Вариант второй – выгружать в пожатом состоянии- так как степень сжатия для текстового файла будет максимальной. Но тут опять же можно столкнуться с тем, что на хостинге не установлена поддержка архиваторов.

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

4. Как частный случай 3 вариант, возможно залить на сервер эмулятор терминала и сделать 5 пункт через него. Например можно попробовать PHPterm, но в этом варианте можно столкнуться с ограничениями хостинга в плане безопасности запуска команд и скриптов.

5. Также есть простенькая программка аналогичная BigDump, которая также позволяет импортировать большие базы данных, только в данном случае необходим Zend Optimizer либо Nu-Coder. Программка называется Sypex Dumper, и вторую версию скрипта можно даже интегрировать в наиболее популярные CMS. На сайте есть как платная утилита, так и облегченная бесплатная версия.

6. Если таки имеется доступ к консоли, то можно добавить в php.ini следующие строки (увеличиваем лимит загрузки файлов по времени и размеру), после загрузки, лучше вернуть все назад, чтобы не нагнули сервак с оказией:
max_execution_time = 20000
max_input_time = 20000
upload_max_filesize = 150M
post_max_size = 150M

7. Но на самом деле наиболее быстрым и оптимальным вариантом загрузки большой базы данных, имея доступ к консоли, будет загрузить дамп базы данных dump.sql через ftp, а затем залить её через консоль ssh:
mysql -h hostname -u user-name -p DB_name dump.sql.utf8
либо указать необходимую кодировку при процедуре импорта базы данных:
mysql -h hostname -u user-name -default_character_set utf8 -p DB_name младше 4.1.1. В старших версиях она активирована по умолчанию.

Опции —quick и —opt рекомендуется использовать, если база данных MySQL слишком большая для того, чтобы целиком поместиться в памяти.

При этом утилита mysqldump выдает ошибку:

В итоге строчка для создания копии базы данных получается следующей:

Для совместимости дампа, сделанного на стороннем сервере мы рекомендуем создавать дамп базы данных с ключом:

Если во время импорта вы получите ошибку вида

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

Как правило, такое случается, если базу данных MySQL используют для хранения содержимого различных файлов, например, картинок или музыки, не размещая их непосредственно в файловой системе. В таком случае, если размер какого-нибудь файла превышает определённое значение — база данных становится непригодной для использования на наших серверах и потребуется либо удалить такие данные из вашей базы, либо рассмотреть вариант использования сервера баз данных на VPS-сервере , где можно установить нужное ограничение max_allowed_packet в необходимое значение, либо не использовать его вообще.

Если на вашем сервере установлена версия MySQL 4.0.x, то для корректного переноса данных со сторонних серверов необходимо при экспорте базы данных использовать ключ:

Как работать с MySQL из скриптов на Perl

Для работы с MySQL из Perl-скриптов как правило используют модуль DBI. Это позволяет удобно открывать и закрывать соединения к СУБД, подготавливать и выполнять запросы к базе, обрабатывать ошибки и так далее. Если вы не имеете опыта работы с MySQL из Perl, рекомендуем вам книгу «Программирование на Perl DBI» (рус., англ.).

Итак, пример работы с MySQL из Perl DBI:

В этом примере мы сначала определяем переменные с параметрами доступа к MySQL, далее выдаем HTTP-заголовок, так как это у нас скрипт для запуска через веб, затем соединяемся с базой, подготавливаем и отправляем select-запрос, получаем и печатаем результаты, после чего закрываем соединение. Это простейший скрипт для работы с MySQL из Perl. Более подробные примеры вы можете найти в этой статье.

Как работать с MySQL из скриптов на PHP

Для работы с MySQL вы можете использовать встроенный в язык PHP средства, поддержка которых уже осуществляется на хостинге. PHP имеет развитый и понятный интерфейс к этой СУБД, что делает работу с MySQL именно из PHP наиболее простой и удобной особенно для начинающих веб-мастеров и веб-программистов.

Полная документация на русском языке по работе с MySQL из PHP-скриптов находится здесь. Кроме описаний, там же вы найдете советы опытных пользователей и примеры использования функций, упоминаемых в документации. Также рекомендуем вам статью «Использование MySQL в PHP сценариях» на сервере hostinfo.ru.

Загрузка данных с помощью LOAD DATA

Начиная с версии MySQL 3.23.49, LOAD DATA LOCAL по умолчанию запрещено по соображениям безопасности, и его надо специально включать.

MySQL-сервер у нас работает с включенным LOAD DATA LOCAL, но необходимо включение данной функциональности со стороны клиента.

Для утилиты mysql есть несколько вариантов включения данной опции:

  1. Параметр —local-infile=1
  2. Создать в домашней директории файл .my.cnf и в нем разрешить эту опцию для группы [mysql], которой пользуется данная утилита:

Включение данного режима из perl’а: необходимо в dsn при подключении указать файл конфигурации mysql (т.к. библиотека libmysql по умолчанию никаких дополнительных файлов конфигурации не читает) и группу в нем, в файле создать эту группу, и для этой группы выставить local-infile=1:

Например, вписываем в

а в скрипте подключение оформляем так:

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

В функции mysql_connect() необходимо использовать аргумент 128 (значение константы CLIENT_LOCAL_FILES) в качестве пятого параметра.

Дополнительные MySQL-база и MySQL-доступ (MySQL-пользователь)

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

Для этого необходимо в контрольной панели в разделе Древо услуг выбрать площадку, для которой необходимо создать дополнительную услугу и в таблице «MySQL» выбрать команду «добавить» для услуги «MySQL-доступ (доп.)» или «MySQL-база (доп.)». Пароли доступа к базам данных можно изменить, вызвав команду «изменить» у требуемого MySQL-доступа.

Вот еще немного инфы (которая, кстати работает, сам проверял)

Импорт больших файлов sql в базу данных mysql

Для этого нужен доступ к папке usrlocalmysql-5.1 на сервере (или на локальном сервере denver).

По умолчанию у вас установлен Максимально допустимый размер загружаемого файла 2 MB .

По этому пути usrlocalmysql-5.1 открываем файл конфигурации my.cnf.

Раскомментируйте следующие строки, если вы хотите изменить
настройки InnoDB по умолчанию.
#
#innodb_data_home_dir = /usr/local/mysql-5.1/var/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql-5.1/var/
#innodb_log_arch_dir = /usr/local/mysql-5.1/var/
# Вы можете установить .._buffer_pool_size размером до 50 — 80 %
# оперативной памяти, но опасайтесь перерасхода
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M — здесь меняем до нужного размера!
#Устанавливайте .._log_file_size to 25 % от _buffer_pool_size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout = 50

Затем перезагружаем сервер и весело работаем с импортом больших sql файлов.

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

4 ответа 4

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

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. Известно, что phpMyAdmin по-дефолту имеет ограничения на размер импортируемой БД.

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

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

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

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

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

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

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

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

Sypex Dumper

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

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

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

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

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

Консоль

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

В заключение

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

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

Подпишитесь на мой телеграм и первыми получайте новые материалы, в том числе которых нет на сайте.

Подпишитесь на рассылку
Один раз в месяц все новые материалы в одном письме

200 бесплатных наборов кистей для Фотошопа
563

Как в Фотошопе сменить русский язык на английский
177

Как быстро наполнить сайт на WordPress с помощью плагина WP All Import
163

Как открыть *.CDR в Adobe Illustrator
150

25 лучших шаблонов для создания интернет-магазина на OpenCart
144

5 лучших книг по Вордпресс на русском языке
137

10 рекомендуемых книг-бестселлеров по PHP
130

Как использовать Media Query в JavaScript
103

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

Подключаем цели Яндекс Метрики к WordPress Contact Form 7
96

Установка временнОй зоны в PHP
94

Как быстро удалить все исходящие заявки в друзья во Вконтакте
94

20 лучших шаблонов Вордпресс для сферы услуг
90

Как скачать приватное видео из фейсбука
87

20 лучших Вордпресс шаблонов для образовательных сайтов
76

Как включить мультисайт и создать сеть сайтов на Вордпресс
75

Проблемы с некоторыми плагинами после обновления Вордпресс до 5.3
73

Как разрешить загрузку SVG и других форматов файлов в Вордпресс?
61

Новый способ подключения целей Метрики и Аналитики к формам WordPress Contact Form 7
59

Топ 10 лендингов для Вордпресс, заточенных на продажи
59

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

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

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