Main > Databases | MySQL | PHP > Denwer импорт дампа MySQL

Denwer импорт дампа MySQL

14.02.2012 2 comments » Views: 8,120

Denwer

Сегодня нужно было поработать на ноуте, и к сожалению доступа к серверу не было. Поэтому воспользовался пакетом от dklab Denwer.
При импорте 9 мб дампа возникли ошибки..

1. PhpMyAdmin выкидывал на главную
По опыту полез проверять ограничения размера файлов, не ошибся.
Открываем \WebServers\usr\local\php5\php.ini

И правим два следующих ключа, было:

Стало:

После чего дамп долго грузился и я все равно получил ошибку:

2. Maximum execution time of 300 seconds exceeded in
Z:\home\localhost\www\Tools\phpmyadmin\libraries\read_dump.lib.php

Эту проблему можно решать по разному, например установив, в файле конфигурации phpmyadmin, параметр set_time_limit или опять в том же конфиге php.ini поменять значение параметра max_execution_time, но исходя из имени файла: read_dump, я понял, что лучше этого не делать, т.к. если за 5 минут, не успел импортировать 9 мб, то увеличение времени, может не дать нужного результата.

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

Пошел по пути:
\WebServers\usr\local\mysql5\bin\mysql_run_to_import_dumps.exe

Попробовал импортировать и получил еще одну ошибку:

3. mysql.exe: Character set 'cp1251' is not a compiled character set and is not specified in the '\usr\local\mysql5\share\charsets\Index.xml' file

Пошел на dklab и вот что я обнаружил, запускать нужно не по прямому пути, а с виртуального диска, в моём случае все заработало так:

где:
motodb - база данных
moto.sql - файл дампа, который надо положить в
\WebServers\usr\local\mysql5\bin\

Импортирование прошло довольно быстро, данные восстановлены 🙂

В другом же случае помогло редактирование Z:\usr\local\mysql5\my.cnf, а именно комментирование кодировки "по-умолчанию":

--[добавлено]--

Сегодня при импорте ~100 мб дампа получил новые, не менее интересные ошибки 🙂


Z:\usr\local\mysql5\bin>mysql_run_to_import_dumps.exe -uroot pofigistmysql_run_to_import_dumps.exe -uroot pofdbmysql.exe -uroot pofdb<123.sql
ERROR 2006 (HY000) at line 315: MySQL server has gone away

Итак по порядку:

Ошибка Error in my_thread_global_end() возникает в том случае, если во время выполнения парсинга (могу ошибаться) запроса MySQL, его прервать по Ctrl+Break

Ошибка ERROR 2006 (HY000) возникает в случае, если у Вас очень большой запрос (так любит делать phpMyAdmin, объединять все данные в один большущий запросище), и он не умещается в максимальный размер пакета. Решение кроется в увеличении размера пакета, делается это в файле

Z:\usr\local\mysql5\my.cnf

а именно настройкой:

После изменения этой настройки, не забудьте перезагрузить сервер, так же добавление дампа, может занять длительное время (100 мб~20 мин), поэтому запасайтесь терпением 🙂

--[добавлено]--

Denwer это хорошо, а как же сделать тоже самое в linux?

1. Заливаем дамп на хостинг, например файл dump.sql в папку /www/db/
2. Создаем базу, например DBNAME
3. Авторизуемся на хостинге по SSH с помощью Putty
4. Переходим в папку /www/db
5. Выполняем комманду:

6. Ждем пока дамп загрузится

Если дамп загрузился, но русские буквы в виде знаков вопросов (как-то так: ???? ?? ????), тогда очищаем базу и добавляем к комманде из п.5 кодировку:

Разумеется вместо cp1251 нужно поставить кодировку русского текста в файле дампа. Посмотреть её можно, открыв дамп в текстовом редакторе. Например в NotePad++

Author: | Rating: 4/5 | Tags:

2 comments.

Write a comment
  1. Олег Reply
    13.01.2014 в 1:26 pm
    Вот видео про это

    http://youtu.be/RMAKS_mdU7Q
    • Vitaliy Orlov Reply
      13.01.2014 в 1:37 pm
      Да, на видео все правильно. Для 100-500 мб - нормальный способ. Но если у вас база x Гб, то лучше использовать импорт через консоль, а не через phpMyAdmin. Так же отличный вариант воспользоваться десктоп клиентом, например HeidiSQL

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>