четверг, 7 февраля 2008 г.

mySQL dump

Надоело составлять каждый раз заново.

Создание дампа:

mysqldump -h127.0.0.1 -umims -pPASSXXX --default-character-set=cp1251 --compatible=mysql323 --add-drop-table --add-locks --skip-extended-insert mims > mims_db.sql

--default-character-set — надо переходить на UTF8, но пока имеем то что имеем
--compatible — часто приходится перегонять из одной БД в другую... (ansi, mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb, no_key_options, no_table_options, no_field_options. One can use several modes separated by commas.)
--skip-extended-insert — экспортируется в виде множесва INSERT-ов

Импорт его в существующую БД:
mysql -umims -pPASSYYYY --default-character-set=cp1251 --database=mims > mims_db.sql


Но при запуске мне выдалось сообщение:
Character set 'cp1251' is not a compiled character set and is not specified in the 'C:\mysql\share\charsets\Index.xml' file.
Добавил --character-sets-dir=C:\Internet\MySQL\share\charsets и стало хорошо. это ошибка перестала появляться

Правда обнаружилась еще одна загадка — все данные загружаются в кодировке latin1. Оказалось, что в экспортном файле есть строчка:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mims` /*!40100 DEFAULT CHARACTER SET latin1 */;
Смена latin1 на cp1251 решило последнюю проблему.
А чтобы эта строчка не экспортировалась можно в первой команде поставить ключ --no-create-db или -n

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

Оставляю себе на будущее эту заметку, чтобы потом не возиться долго...

пятница, 19 октября 2007 г.

Очередной блог

Завожу я себе блоги, завожу, но в какой-то момент перестаю туда писать...
И здесь так будет скорее всего...

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

ну все, пишите в темноту!