Уважаемые коллеги, просьба помочь разобраться:
Есть два сервера:Сервер №1
MySQL version 4.1.11character_set_client = utf8
character_set_connection = utf8
character_set_database = koi8r
character_set_results = utf8
character_set_server = koi8r
character_set_system = utf8
collation_connection = utf8_general_ci
collation_database = koi8r_general_ci
collation_server = koi8r_general_ciСервер №2
MySQL version 4.1.20character_set_client = utf8
character_set_connection = utf8
character_set_database = latin1
character_set_results = utf8
character_set_server = latin1
character_set_system = utf8
collation_connection = utf8_general_ci
collation_database = latin1_swedish_ci
collation_server = latin1_swedish_ciНа первом живет база, у которой следующие свойства:
character set = koi8rВопросы:
1. Как правильно перенести данные, базы на второй сервер, так что-бы не получить "???"
2. Что неправильно настроено в базах относительно кодировок?
Вы перечислили ряд переменных, большинство из которых можно изменить на клиентской стороне. Для переноса баз требуется соответствие записанных в базу данных указанной при ее создании кодировке и более менее вменяемый код приложения(хотя бы использование set names и понимание автором эффекта различных collation). Все это позволяет перенести базу как бинарно так и sql дампом.
>Вы перечислили ряд переменных, большинство из которых можно изменить на клиентской стороне.
>Для переноса баз требуется соответствие записанных в базу данных указанной при
>ее создании кодировке и более менее вменяемый код приложения(хотя бы использование
>set names и понимание автором эффекта различных collation). Все это позволяет
>перенести базу как бинарно так и sql дампом.Дело в том, что переносится ПО ipplan (http://iptrack.sourceforge.net/). При этом если дампом - то уже в дампе - полагаю теряется информация в русских записях, но никак не могу побороть это.
Так вот при переносе - на новом сервере - получаю вопросы...
Прошу помощи...
Для начала, почему бы не перенести бинарно? У вас на обоих серверах 4.1 и проблем быть не должно. Единственная причина на мой взгляд это не MYISAM таблицы, но вы про это не упоминали. Разумеется перед копированием произвести остановку сервера или FLUSH TABLES WITH READ LOCKЕсли все-таки дампом, то убедитесь что изначальная база создана верно. То есть если поле в koi8-r, то и данные там в том же формате. Убедится в этом проще простого, смените себе кодировку(например на cp1251 или utf-8), законнектесь к базе и сделайте set names ваша_локаль; select запрос по полям с русскими сиволами. Если выдается нормально, значит у вас все хорошо и переносите дампом с полным созданием таблиц из дампа. Если нет, то боюсь вам таки придется открыть раздел руководства посвященный кодировкам и внимательно его почитать.