Форум русскоязычного сообщества Ubuntu


Автор Тема: Вопрос по миграции сервера (решено)  (Прочитано 3746 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Лямкин

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Вопрос по миграции сервера
« Ответ #15 : 01 Декабря 2006, 15:58:37 »
Возвращассь к данной проблеме:

Поставил апач2+php5+мускул5
так вот. у меня мускул работает по умолчанию в UTF-8 (тут где-то говорили, что так и нада)
Как его блин заставить работать в WINDOWS-1251???

на базе стоит кодировка "cp1251_general_ci"
в движке форума с могу указать как php обращаться к mysql
такой строкой Mysqli charset = 'cp1251'
а вот есть другие приложения (например самописный движок библиотеки), где никак нельзя прописать в каждый файл, в какой кодировке ломиться к MySQL. Может в htaccess прописать что?

а в пхп никак низс насильно все запросы приказать делать в какой-то кодировке?

вот тут: http://phpclub.ru/talk/showthread.php?s=8143f610cd5d9e52cd2bed289fe6af57&threadid=58477&rand=93, читаю, что лечат исправлением файлов "libmysql.dll" и "libmysqli.dll". Что-то только никто не нашёл выход на Линуксах.
А может есть другое, пусть не проще, решение???



Есть совет перекомпилить сам MySQL с параметром --with-extra-charsets=complex или --with-extra-charsets=windows-1251
Как это сделать руками. подскажите, плиз, полностью что и как проделать.
как скомпилить самому. Я так понимаю, нужно скачать не пакет, а инталлер и как-то прокомпилить и установить. Нужно ли при стом удалить уже установленный софт?
Помогите пожалуйста!
« Последнее редактирование: 01 Декабря 2006, 16:13:03 от kinder »

Оффлайн MebiusTrack

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
  • Тестер-матюгальник
    • Просмотр профиля
Re: Вопрос по миграции сервера (решено)
« Ответ #16 : 02 Декабря 2006, 11:18:44 »
Попытка компиляции MySQL не привела к желаемому результату, пришлось переустанавливать систему на сервере. Проблема решилась следующим образом:
Мос ошибка была в том, что параметр default-character-set=cp1251 лепил где угодно, а надо было в первую очередь. В итоге, мои конфиги выглядят сейчас так:
my.cnf
Цитировать
[client]
default-character-set=cp1251
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

...

[mysqld]
skip-character-set-client-handshake
default-character-set=cp1251
Как мне подсказали на форуме Северокавказской LUG, параметр skip-character-set-client-handshake запрещает серверу реагировать на кодировку клиента, и заставлсет его работать с кодировкой, указанной в default-character-set. Это применяется для MySQL версий от 4.1.15 (как раз такас у меня и есть, из оф.репозиторис), и
5.0.13.  Кстати, в debian.cnf в начале секции [client] для острастки тоже прописал default-character-set=cp1251  :D
Далее:
/etc/php4/apache2/php.ini
Цитировать
; PHP's built-in default is text/html
default_mimetype = "text/html"
default_charset = "cp1251"
У Нпача также прописана кодировка cp1251 в качестве дефолтной.
Далее. База в MySQL создавалась через phpmyadmin - к тому моменту после перезапуска Мускулс системные переменные в области кодировок выглядели так:
Цитировать
character set client utf8
(Глобальное значение) cp1251
character set connection cp1251
character set database cp1251
character set results utf8
(Глобальное значение) cp1251
character set server cp1251
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci
Итак, база создавалась со сравнением cp1251_general_ci, затем в нее был импортирован дамп базы, работавшей ранее на Windows 2003 Server.
И всё заработало...  :D Полтора месяца возни...

 

Страница сгенерирована за 0.069 секунд. Запросов: 23.