Содержание
Задача. Необходимо импортировать большую базу данных (БД) объемом около 200 Мб, а в phpMyAdmin установлено ограничение в 50 Мб.
Установка и настройка BigDump
Решение 1. Чтобы загрузить большую базу данных MySQL, большую чем разрешено, можно использовать скрипт BigDump. Условно, нужно загрузить и настроить скрипт, а также импортируемую БД на хостинг, и потом запустить скрипт.
Алгоритм установки и запуска BigDump:
- Загружаем на хостинг БД, которую будем имортировать и файл
bigdump.php
(например в корень сайта). - На файл bigdump.php должны стоять права —
755
. - Установить настройки для подключения к БД в файле
bigdump.php
согласно Коду №1 (На сервере уже должна быть создана БД, куда будем импортировать и она должна быть в той же кодировке). - Запуск скрипта. Открываем в браузерной строке
http://mysite.net/bigdump.php
и запустить импортStart import
.
1 2 3 4 5 6 7 8 9 |
$db_server = 'localhost'; /* Чаще всего без изменений */ $db_name = 'DB_Name'; /* Имя БД */ $db_username = 'DB_User'; /* Пользователь БД */ $db_password = 'DB_Password'; /* Пороль к БД */ $filename = 'My_Dump_DB.sql'; /* Дамп БД который загрузили */ $db_connection_charset = 'utf8'; /* Т.к. мы работаем с кириллицей, то скорей всего это utf8 или cp1251 */ |
Ошибки при импорте с BigDump
Ошибка 1. Один раз при импорте была такая проблема: скрипт ругался на какие-то двоеточия и пробелы в БД. Обусловлено это было иструментом, которым создавалась база данных. Тогда она создавалась каким-то плагином в WordPress. Когда экспортировал через панель phpMyAdmin, то все прошло нормально.
Ошибка 2. Импорт остановился по ошибке со следующим содержимым:
Stopped at the line 387.
At this place the current query includes more than 300 dump lines. That can happen if your dump file was created by some tool which doesn’t place a semicolon followed by a linebreak at the end of each query, or if your dump contains extended inserts. Please read the BigDump FAQs for more infos.
Нужно в файле bigdump.php
найти переменную $max_query_lines = 300;
и заменить значение на большее, например, 10000.