1 (изменено: SirJay, 2010-12-17 16:52:10)

Тема: Проблема с переездом + не читается база

Здравствуйте. Помогите пожалуйста с переездом на другой хостинг. На данный момент имею форум smf2.0 в utf8 при установке ничего не изменял в итоге форум установился т.о. что база не читается, но на форуме все отображалось нормально. Кракозябры в базе вида Можете открыть . На запрос SHOW GLOBAL VARIABLES LIKE 'char%' выводит:
character_set_client    cp1251 character_set_connection    cp1251 character_set_database    cp1251 character_set_filesystem    binary character_set_results    cp1251 character_set_server    cp1251
character_set_system    utf8 character_sets_dir    /usr/local/share/mysql/charsets/
на вкладке операции в phpmyadmin cp1251_general_ci
Сделал backup базы залил в phpmyadmin нового хостинга, прописал новые пути и доступы, в итоге появились ???????? Затем добавил в файл где подключается к базе  mysql_query("SET NAMES 'cp1251'"); появились русские буквы но с проблемой букв и/ш +  топики с русскими символами отображаюся пустыми (хотя в базе в таблице messages есть данные) сделал запрос SHOW GLOBAL VARIABLES LIKE 'char%' на новом хостинге выдал

2

Re: Проблема с переездом + не читается база

character_set_client    latin1
character_set_connection    latin1
character_set_database    latin1
character_set_filesystem    binary
character_set_results    latin1
character_set_server    latin1
character_set_system    utf8
character_sets_dir    /usr/share/mysql/charsets/
на вкладке операции в phpmyadmin cp1251_general_ci

Если в notepad++ открыть бекап то он в utf8, далее сделать преобразовать в ANSI и кодировать в UTF8 то появляется русский текст но с проблемой букв и/ш. Подскажите, пожалуйста, что нужно сделать в этой ситуации, чтобы восстановить читаемость базы и интегрировать ее на новый хостинг?

3

Re: Проблема с переездом + не читается база

Самый быстрый способ перекодировать данные - это через mysqldump. В случае если на сервере есть доступ к командной строке, то все очевидно, но если такого доступа нет, то потребуется развернуть тестовый MySQL сервер на домашнем компьютере и с его помощью перекодировать импортированные данные.

mysqldump -uuser -ppass --default-character-set=utf8 db_name > backup-file.sql

user - имя пользователя MySQL, например root
pass - пароль пользователя
db_name - имя базы данных