URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 4443
[ Назад ]

Исходное сообщение
"mysql и кодировка"

Отправлено spyfox , 23-Окт-06 01:39 
была пробелма в том, что в логах апача появлялись ошибки:
File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2)
^GCharacter set '#51' is not a compiled character set and is not specified in the 'NONEXISTENT/charsets/Index' file

Пересобрал php, изменив файл dist/php-4.4.4/ext/mysql/libmysql/my_config.h
Вместо define SHAREDIR "NONEXISTENT" прописал #define SHAREDIR "/usr/share/mysql"
Пересобрал с опциями:
./configure
--prefix=/usr/local
--enable-pic
--with-dom
--with-dom-xslt
--with-jpeg-dir
--enable-xslt
--with-zlib-dir
--with-xslt-sablot
--with-iconv-dir
--with-iconv
--with-gd
--with-apxs2=/usr/sbin/apxs
--with-mysql
--with-mysql-sock=/var/lib/mysql/mysql.sock
--with-charset=cp1251
--with-extra-charset=complex

Теперь при попытке запустить скприпт пхп из консоли пишет:
Character set '#51' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index' file

Насколько я понимаю это проблема в самом мускуле. MYsql 4.1 ставился из пакетов, поэтому в файле его конфига /etc/my.cnf прописана след. строка:
[mysqld]
default-character-set=cp1251

Раз я вручную кодировку прописал, то мне и файл /usr/share/mysql/charsets/Index.xml нужно вручную править (т.к. я думаю что проблема в нем)? Что в нем нужно прописать? Или я ошибаюсь и моя теория не верна?


Содержание

Сообщения в этом обсуждении
"mysql и кодировка"
Отправлено svazist , 29-Окт-06 19:40 
>была пробелма в том, что в логах апача появлялись ошибки:
>File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2)
>^GCharacter set '#51' is not a compiled character set and is not
>specified in the 'NONEXISTENT/charsets/Index' file
>
>Пересобрал php, изменив файл dist/php-4.4.4/ext/mysql/libmysql/my_config.h
>Вместо define SHAREDIR "NONEXISTENT" прописал #define SHAREDIR "/usr/share/mysql"
>Пересобрал с опциями:
>./configure
>--prefix=/usr/local
>--enable-pic
>--with-dom
>--with-dom-xslt
>--with-jpeg-dir
>--enable-xslt
>--with-zlib-dir
>--with-xslt-sablot
>--with-iconv-dir
>--with-iconv
>--with-gd
>--with-apxs2=/usr/sbin/apxs
>--with-mysql
>--with-mysql-sock=/var/lib/mysql/mysql.sock
>--with-charset=cp1251
>--with-extra-charset=complex
>
>Теперь при попытке запустить скприпт пхп из консоли пишет:
>Character set '#51' is not a compiled character set and is not
>specified in the '/usr/share/mysql/charsets/Index' file
>
>Насколько я понимаю это проблема в самом мускуле. MYsql 4.1 ставился из
>пакетов, поэтому в файле его конфига /etc/my.cnf прописана след. строка:
>[mysqld]
>default-character-set=cp1251
>
>Раз я вручную кодировку прописал, то мне и файл /usr/share/mysql/charsets/Index.xml нужно вручную
>править (т.к. я думаю что проблема в нем)? Что в нем
>нужно прописать? Или я ошибаюсь и моя теория не верна?


Странное дело, решать вопросы кодировки соединения с MySQL из PHP подкручивая сам PHP..

Может проще собрать всё по "дефолту" и при соединении из скрипта устанавливать кодировку сединения ?

т.е. посде
mysql_connect();

выолнять запрос "SET CHARACTER SET [CP1251|utf8|вообщем указываем кодировку]"


"mysql и кодировка"
Отправлено Асен Тотин , 30-Окт-06 23:19 
Привет,

Такое может быть, если MySQL из бинарников, а PHP - из изходников... случай описан в Гугле, попробуйте поставить оба пакета одним и тем же образом.

WWell,