Как импортировать базы данных больших размеров?
Недавно мне потребовалось немного расширить функционал на своём сайте http://srs.myrusakov.ru. Разумеется, встал вопрос о его импортировании на Denwer, чтобы я спокойно мог его модернизировать, а затем залить свежую версию обратно. С файлами никаких проблем не было, а вот с импортом базы возникла серьёзная трудность. Дело в том, что на данном сайте я собираю информацию о каждом посещении каждой страницы. Таким образом, количество записей в соответствующей таблице составляет несколько сотен тысяч. Эта таблица весит около 40 МБ. Разумеется, импортировать её, как и все другие, через PHPMyAdmin не представляется возможным. Можно было бы, конечно, менять настройки php.ini, но делать мне этого не хотелось, тем более, решение это временное, поскольку таблица увеличивается очень быстро. Поэтому мне пришлось найти способ, как импортировать базы данных больших размеров. Об этом я и расскажу в данной статье.
Помогла мне в этом одна программа, которая называется Sypex Dumper. Вот здесь можно скачать свежую версию: http://sypex.net/ru/products/dumper/downloads/. Версия Pro является платной, и она Вам не нужна, поэтому выбирайте другую. У данной программы много возможностей, но нам потребуется лишь импорт базы данных.
Разархивируйте папку с программой на какой-нибудь виртуальный хост на Denwer (либо в отдельную папку на своём хостинге). Там появится папка backup, и в эту папку Вам надо поместить SQL-файл Вашей большой базы данных.
Теперь зайдите на данный виртуальный хост, и Вы увидите следующее:

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

Далее Вам нужно выбрать базу данных, в которую будет идти импорт (перед этим её лучше очистить через PHPMyAdmin), файл (который находится в папке backup) и затем нажать на кнопку «Выполнить«.

После нажатия на кнопку «Выполнить» Ваша база данных будет практически моментально импортирована (причём намного быстрее, чем это делает PHPMyAdmin).
Безусловно, если Ваша база не очень большая (в пределах 10 МБ), то данный способ Вам и вовсе не нужен. А вот если Вам нужно импортировать базы данных больших размеров, то данный скрипт станет для Вас незаменимым помощником.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 14 ):
Та же проблема "Fatal error: require_once() [function.require]: Failed opening required ‘Spreadsheet/Excel/Writer.php’ (include_path=’.;/usr/local/php5/PEAR’) in Z:\home\localhost\www\Tools\phpmyadmin\libraries\export\xls.php on line 5" не могу понять где найти SQL-файл Вашей большой базы данных?
Это ошибка в самом phpmyadmin, попробуйте переустановить Denwer. Также можете просто взять SQL-запрос из файла, скопировать его и вставить его во вкладку "SQL" в базе, в которую нужно импортировать данные.
Дело в том, что уже есть сайт. Просто переустановить денвер нельзя. Я скопировал сайт из папки home и теперь осталось базу данных скопировать. Если придерживаться вашего совета. Установил программу sxd на denwer. А дальше не знаю что делать:( "Также можете просто взять SQL-запрос из файла, скопировать его и вставить его во вкладку "SQL" в базе, в которую нужно импортировать данные." Объясните чуть подробнее пожалуйста.
У Вас есть SQL-файл, откройте его в блокноте, скопируйте весь код и найдите вкладку "SQL" в phpMyAdmin, туда этот код и вставьте и выполните его.
Извиняюсь за тупость..Не могу найти sql файл. Где он находится,чтобы его открыть?
Подсказка Денвера Вы ошиблись при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл Z:/home/localhost/www/Tools/phpMyAdmin/function.require, которого не существует. В случае использования CGI-скриптов, корректные пути к CGI-директориям следующие: URL Куда указывает http://***/cgi-glob/script.cgi /home/cgi-glob/script.cgi http://***/cgi/script.cgi /home/***/cgi/script.cgi http://***/cgi-bin/script.cgi /home/***/cgi-bin/script.cgi это если нажать [function.require..может быть как то поможет
Так у Вас что не получается? Экспорт или импорт?
Экспорт не получается. Выходит ошибка Fatal error. Я её в первом сообщении еще написал. Потом если нажать "function.require" в этой самой ошибке, выходит "Подсказка денвера". В предыдущем сообщение написал о ней. Вот так. У меня сайт на CMS Joomla 2.5 Версия: Денвер-3 2012-09-16 (Если пригодится)
В настройках экспорта посмотрите, попробуйте разные настройки поставить. Там есть "Вывод в файл" или просто "Вывод в окно браузера". Попробуйте разные варианты.
Моих мозгов не хватило разобраться в ситуации с вашей помощью. Я задал вопрос на форуме. Надеюсь помогут:) Вам спасибо за советы!
как сделать импорт большой базы данных в phpMyAdmin?
Как импортировать большую базу данных в PHPMyAdmin,у меня она около 800Мб, как это сделать с помощью Terminal в Mac OS?
Консольная команда для импорта базы из sql файла
Импорт большой базы данных с помощью консоли (терминала):
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.
How to import large sql file in phpmyadmin
I want to import a sql file of approx 12 mb. But its causing problem while loading. Is there any way to upload it without splitting the sql file ?
23 Answers 23
Try to import it from mysql console as per the taste of your OS.
or if it’s on a remote server use the -h flag to specify the host.
![]()
3 things you have to do:
in php.ini of your php installation (note: depending if you want it for CLI, apache, or nginx, find the right php.ini to manipulate)
or set other values.
Restart/reload apache if you have apache installed or php-fpm for nginx if you use nginx.
Remote server?
increase max_execution_time as well, as it will take time to upload the file.
NGINX installation?
you will have to add: client_max_body_size 912M; in /etc/nginx/nginx.conf to the http <. >block
![]()
Edit the config.inc.php file located in the phpmyadmin directory. In my case it is located at C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php .
Find the line with $cfg[‘UploadDir’] on it and update it to $cfg[‘UploadDir’] = ‘upload’;
Then, create a directory called ‘upload’ within the phpmyadmin directory (for me, at C:\wamp\apps\phpmyadmin3.2.0.1\upload\ ).
Then place the large SQL file that you are trying to import into the new upload directory. Now when you go onto the db import page within phpmyadmin console you will notice a drop down present that wasn’t there before – it contains all of the sql files in the upload directory that you have just created. You can now select this and begin the import.
If you’re not using WAMP on Windows, then I’m sure you’ll be able to adapt this to your environment without too much trouble.
Перенос базы данных(bd) больше 2 мб в phpmyadmin (denwer)

В ходе работы над одним сателлитом – столкнулся с проблемой импорта дамба базы данных mysql. Дело в том, что sql файл был не маленьким – 25 мегабайт, хотя обычно приходилось работать с меньшими базами.
Изначально я попробовал использовать SypexDumperLite – оболочка для работы с базами данных mysql. Скачать SypexDumperLite можно с официального сайта. Но, к сожалению в этот раз при работе с моей БД – SypexDumper начал говорить о разных ошибках в ходе импорта. Исходя из этого – первая мысль, которая возникла – попробовать импортировать базу через phpmyadmin.
Я не использую xampp, почему-то предпочитаю старый, добрый denwer. Вот в связке с этим и установил мой phpmyadmin. Когда начал импортировать через него, то увидел только сообщение о том, что импортируемый файл слишком большой ( No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16. ) и необходимо перезапустить процесс, чтобы продолжить. После парочки таких перезапусков я решил не ждать и решить вопрос по другому. Существует определенный лимит времени и максимального размера закачки файлов на сервер в phpmyadmin. По умолчанию лимит времени импорта ограничен 300 секундами, скорее по этому и возникала ошибка.
Что я сделал для того, чтобы решить проблему:
- В файле php.ini (основной конфигурационный файл php) отыскал такую строчку – upload_max_filesize и увеличил ее значение до нужного мне. Если перевести эту строку, то становится понятно, это максимальный размер загружаемого файла (импортируемого).
- Далее в …home/localhost/www/Tools/phpmyadmin/libraries/config.default.php (в оболочке xampp все выглядит примерно так же) отыскал строчку $cfg[‘ExecTimeLimit’], она по умолчанию равна 300, это и есть время, значение которого нужно было увеличить.
Далее снова попробовал импортировать свой sql-файл и все заработало. Phpmyadmin достаточно долго его загружал, но загрузил. Вот такая проблема и такое решение, достаточно простое. Рад если кому-то смогу помочь.
Поделиться ссылкой:
Перенос базы данных(bd) больше 2 мб в phpmyadmin (denwer) : 14 комментариев
а что за строчка в первом случае и во втором . как хоть разделы называются и что искать. Сам то не спец сильный. Тоже с такой же проблемой столкнулся !
открываете фаил — php.ini или config.default.php, нажимаете Ctrl+F и вставляйте upload_max_filesize или $cfg[‘ExecTimeLimit’], нажимаете — поиск, и будет вам счастье )))
Спасибо, действительно помог;)
Всё сделал как описанно выше — неполучилось — выдаёт следующую ошибку:
SQL query:
SELECT `comment`
FROM `phpmyadmin`.`pma_column_info`
WHERE db_name = ‘ukrpart’
AND table_name = »
AND column_name = ‘(db_comment)’
MySQL said:
#2006 — MySQL server has gone away
Короче говоря — сервер умер… 🙁 🙁 🙁 — а файл был размером всего-то 9мb… 🙁 🙁 🙁
слы там нет такого файла php.ini (версия 3.4)
спасибо все ок, не забываем перегрузить денвер
в значении поставил 0 и далее попытался снова перезалить бд но тоже самое?? почему так((
Конечно перезапустил но пришлось править в пхпшке другие строки.. вот они.. )
post_max_size =
upload_max_filesize =
Спасибо очень помог, я искал долго решение этой проблемы .
Спасибо огромное! Уже голову поломал.. а проект важный 🙂
спасиб заработало!)
во втором шаге там где надо изменить лимит(в файле config.default.php)
лучше поставить
вместо
$cfg[‘ExecTimeLimit’] = 300;
$cfg[‘ExecTimeLimit’] = 0; означает что время будет без лимита!_)
Отличный мануал, как на меня. Все получилось с первого раза
Всё гораздо проще))) Запакуйте файл базы в архив с МАКСимальным сжатием, у меня база в 2 мегабайта вышла 210 килобайт всего! и прекрасно принялась в «phpmyadmin» и распаковалась превосходно.