Проблемы с таблицей кодировки MySQL при перемещении серверов - PullRequest
2 голосов
/ 24 января 2012

Я пытаюсь переместить базу данных phpBB с одного старого сервера на другой новый.

Старый сервер работает под управлением MySQL 5.0.45 с phpMyAdmin 2.8.0.2.
Новый работает под управлением MySQL 5.5.17 с phpMyAdmin 3.4.3.2.

Старый набор символов по умолчанию для старого сервера - UTF-8, но база данных phpBB находится в сопоставлении latin1 и latin1_swedish_ci. Поскольку это польский форум, в нем есть польские акценты в словах, и хотя они правильно отображаются на форуме, phpMyAdmin показывает их как:

  • ć отображается как æ
  • ś -
  • ż - ¿
  • ł - ³
  • и так далее ...

Я получил два дампа базы данных: один из phpMyAdmin, доступный на сервере, и второй, сделанный администратором сервера с помощью mysqldump. Я предполагаю, что дамп выполняется в формате utf-8, но таким образом, что я не могу импортировать дамп в новую базу данных и сохранить польские акценты. Например. Шестнадцатеричное значение UTF-8 для буквы ć равно C4 87, тогда как в обоих дампах шестнадцатеричное значение для буквы C3 A6.

Итак, как мне это сделать? Что мне делать, чтобы импортировать дамп (или правильно экспортировать, если это проблема), чтобы он сохранял польские акценты?

Может, мне стоит как-то конвертировать дамп? Я попытался использовать iconv безуспешно, но у меня практически нет опыта с ним.

Да, и, кстати, html-кодировка форумов iso-8859-2, которая подходит для отображения польских акцентов.

1 Ответ

0 голосов
/ 24 января 2012

Если у вас есть доступ к вашему серверу, вы можете изменить кодировку по умолчанию для вашего нового сервера в файле my.cnf.

[mysqld]

default-character-set=latin1

default-collation=latin1_german1_ci

и если вы используете командную строку для выполнения импорта, вы можете использовать эту команду

mysql -h host -u username -p password -default_character_set utf8 database < file.sql 
...