Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: xtz в Jan 21, 2008, 13:18



Титла: Mysql не обича кирилица :(
Публикувано от: xtz в Jan 21, 2008, 13:18
Некой с идеи защо MySQL не ще да вкара в таблиците НИЩО, което е с енкодинг (1251)?
Ето и настройките в my.cnf:
[mysqld]
character-set-server            = cp1251
default-character-set           = cp1251
Иначе си бачка без проблеми, но не и с кирилица :(


Титла: Mysql не обича кирилица :(
Публикувано от: winman в Jan 21, 2008, 13:41
Най-вероятнопроблема ти не идва от Mysql, а от неправилна комуникация между базата данни и другата програма. Затова дай повече подробности, какво и как комуникира с Mysql. Още по-добре направо отивай из руските форуми. Там има много добри решения за всичко, касаещо твоя проблем.


Титла: Mysql не обича кирилица :(
Публикувано от: qwert в Jan 21, 2008, 13:59
по скоро опитай да сложиш в секцията mysqld опцията init-connect='SET NAMES cp1251',а в секцията client опцията default-character-set=cp1251


Титла: Mysql не обича кирилица :(
Публикувано от: tmcdos в Jan 21, 2008, 14:05
Цитат (qwert @ Ян. 21 2008,13:59)
по скоро опитай да сложиш в секцията mysqld опцията init-connect='SET NAMES cp1251',а в секцията client опцията default-character-set=cp1251

default-character-set=cp1251 не работи в секция client - мисля, че това започва от версия 4.1, но не съм сигурен. По-добре е да се сложи в секция mysqld. Също така трябва да се провери с какъв Character-Set и каква Collation схема е създадена съответната база данни и таблиците в нея - трябва да са cp1251_general_ci





Титла: Mysql не обича кирилица :(
Публикувано от: xtz в Jan 21, 2008, 14:10
qwert, добавянето на init-connect='SET NAMES cp1251' в секцията mysqld реши проблема. Бях намерил заобиколен начин, като в PHP използвах $db->sql_query("SET NAMES 'cp1251'");, но това решаваше проблема само за конкретния случай. Благодаря :ok:


Титла: Mysql не обича кирилица :(
Публикувано от: n00b в Jan 21, 2008, 14:54
Не се занимавайте с глупости ами направо скачайте на UTF8!


Титла: Mysql не обича кирилица :(
Публикувано от: qwert в Jan 21, 2008, 14:56
tmcdos каза:
default-character-set=cp1251 не работи в секция client - мисля, че това започва от версия 4.1, но не съм сигурен. По-добре е да се сложи в секция mysqld.

Тъкмо пробвах въпросната опция "default-character-set=cp1251" в секцията client на  "mysql-server 4.0.x" работи но опцията "init-connect" за съжаление я няма.Така че въпросните опции ги ползвам на mysql 5.0 и работят.





Титла: Mysql не обича кирилица :(
Публикувано от: tmcdos в Jan 23, 2008, 18:07
@qwert:

Странно.
Аз в началото започнах с 3-та версия (не беше популярната 3.23, но не помня точния номер) - и после като обнових до 4-та, точно в секция "client" ми даде грешка. В сегашния ми файл все още си седи командата с едно "#" отпред - за спомен.
За "init-connect" не се бях сетил - но аз винаги си ползвам една и съща функция за връзка с базата, и вътре си изпълнявам "SET NAMES cp1251" или "SET NAMES utf-8" (което ми трябва за текущия проект).
Но да не се отплесвам на философски теми :-)