Home > mysql > MySQL, mysqldump и кодировки

MySQL, mysqldump и кодировки

March 9th, 2009

При переносе базы с одного сервера на другой посмотреть в какой кодировке создана база (show create database base_name) и таблица (show create table table_name). Так же необходимо знать в какой кодировке были сами данные.

сделать дамп:

mysqldump -ubackup -pPassword base_name --allow-keywords --create-options --complete-insert --default-character-set=latin1 --add-drop-table --single-transaction > ./base_name.sql

если заливать надо будет на MySQL 4 то так:

mysqldump -ubackup -pPassword base_name --allow-keywords --create-options --complete-insert --default-character-set=latin1 --add-drop-table --single-transaction --skip-add-locks --skip-disable-keys --no-tablespaces > ./base_name.sql

где latin1 – кодировка самих таблиц исходной базы, а не данных! Тогда при создании дампа данные не будут перекодироваться и отдадуться в правильном виде.

Далее надо открыть дамп в редакторе поддерживащем UTF8, например, в Notepad++ и проверить, что данные нормально читаются. Потом отредактировать этот дамп и поменять в операторах создания базы и таблиц latin1=>utf8. Потом уже заливать в новое место как UTF8.

ЗЫ. Если после всех этих телодвижений wordpress показывает кракозябры – надо прописать define(‘DB_CHARSET’, ‘utf8′); в wp-config.php

mysql , ,

  1. No comments yet.
  1. No trackbacks yet.
Участки: покупка земельных участков в подмосковье ижс . .
RSS-подписка