Как я импортировал огромную базу

NO TRANSLATION AVAILABLE

Дело было под Windows 7

Нежданно-негаданно возникла задача импортировать себе базу MySQL довольно приличного размера.
На первый взгляд крайне простая штука: берешь SypexDumper и льешь.

Но на базе размером в 400 мегабайт дампер лег и перестал подавать признаки жизни.

Было принято судьбоносное решение импортить дамп через родную Windows-консоль MySQL.

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

Этап первый - Mysql server has gone away

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

Был найден параметр max_allowed_packet, который установлен в значение 1M

Нехитрые манипуляции и у нас есть max_allowed_packet = 700M

Еще одна засада притаилась в неожиданном месте
По идее конфиг MySQL лежит в /путь-к-MySQL/my.ini
Но в XAMPP этот путь выглядит как /путь-к-MySQL/bin/my.ini   //еще пара миллионов нервных клеток коту под хвост 

Этап второй - все заливается, но кодировки то, кодировки....... 

Поскольку исходный дамп был в 1251, а юзать его в дальнейшем нужно было в UTF8, открыл файл в Notepad++
Сделал Кодировки >> Преобразовать в UTF8 (Без BOM)

Запускаю консоль MySQL

mysql> use mydbname
mysql> source J:\dump.sql


И на выходе сплошь и рядом закорючки 

Чтобы не углубляться в подробности, пишу список того, что делал
/путь-к-MySQL/bin/my.ini
секция [client]
default-character-set=utf8

секция [mysqld]
character-set-server = utf8
collation-server = utf8_general_ci

 

И в самом дампе первой строкой написал
SET NAMES utf8;

Не забываем про точку с запятой в конце строки.

 

Вот и все. По дороге еще менял шрифты в консоли и кучу чего еще творил.
Но это некритично.

Удачи в длинных импортах!

Контакт

518 4067
220 5532

ICQ 255018290

info@redsoft.ru

 

 

Redsoft-участник top25 рейтинга рунета

Redsoft - участник Top25
рейтинга студий России