кодировка mysql

MySQL, PostgreSQL, InterBaseSQL etc

Модераторы: Art.i, vasya

кодировка mysql

Сообщение Vinny » Пт ноя 19, 2004 3:06 pm

Пол дня тра...сь с муськой...

На любой запрос отвечает:

Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='

Конфиг /etc/my.cnf:
[mysqld]
default-character-set=cp1251
skip-innodb

Сервер перестартовывал, не помогает... Нашел в инете кучу вопросов по этой проблеме, но внятного ответа не нашел... Может кто решиля для себя эту проблему?
Vinny
 

Сообщение vasya » Пт ноя 19, 2004 3:12 pm

перед тем как insert делать.
попробуйте выполнить
mysql_query("SET NAMES 'cp1251'")

это по идее должно выставить для текущего соединения кодировку.
вообще лучше делать сразу после коннекта к базе.

текущие для соединения переменные
можно распечатать 'SHOW VARIABLES';

а вообще надо вдумчиво почитать документацию на эту тему на mysql.com, там даже migration giude есть на тему переезда с 4.0 на 4.1
vasya
Site Admin
 
Сообщений: 1117
Зарегистрирован: Пн апр 28, 2003 9:13 am

Сообщение Vinny » Пт ноя 19, 2004 3:15 pm

Самое смешное что это запрос:

select count(*) from news_news where Url='test'

в пустой базе данных...

ладно, буду дальше копать...
Vinny
 

Сообщение Lisa » Пт ноя 19, 2004 3:58 pm

Напишите, если что-то получится.

У меня сейчас убрано

[mysqld]
default-character-set=cp1251

Все работает, но нет возможности смотреть базы через phpmyadmin
Lisa
 
Сообщений: 10
Зарегистрирован: Пн июн 30, 2003 12:59 pm
Откуда: Подмосковье

Сообщение Vinny » Пт ноя 19, 2004 4:21 pm

Пришлось побеждать не очень красиво... В инлудники с базой вставил:

mysql_query('SET NAMES \'cp1251\'');

работает...
Vinny
 

Сообщение Vinny » Пт ноя 19, 2004 4:23 pm

Кстати, пока разбирался с муськой, каким-то макаром прибил управление муськой в менеджере :) Теперь он мне пишет "Ошибка: Внутренняя ошибка Can't connect to mysql"... Пароль админский на муську поменял и в муське и в файле конфига менеджера... Позже разбирусь, пока приходится базы ручками создавать...
Vinny
 

Сообщение vasya » Пн ноя 22, 2004 8:00 am

Если делаете какие-то изменения в конфиге менеджера, то его надо бы перезапустить. Самый простой вариант убить

# killall ispmgr

а поднимется он автоматом.
vasya
Site Admin
 
Сообщений: 1117
Зарегистрирован: Пн апр 28, 2003 9:13 am

Re: кодировка mysql

Сообщение elkie » Сб янв 22, 2005 9:35 am

Vinny писал(а):Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='


"Немного" запоздало, но мы только сейчас перебираемся на MySQL 4.1. ;)
В конфиг нужно написать не только default-character-set, то еще и:

character-set-server = koi8r
collation-server = koi8r_general_ci
default-character-set = koi8r
default-collation = koi8r_general_ci

ну или cp1251 вместо koi8r. Там же в сообщении именно про collations написано.

Ну и в секцию [mysql] (т.е. для клиента) вставить
default-character-set = koi8r
тоже не помешает.
elkie
Advanced customer
 
Сообщений: 61
Зарегистрирован: Вт янв 18, 2005 8:06 am

Сообщение Voyager2K » Вс май 08, 2005 12:54 am

Раньше ставил cp1251 прямо phpmyadmin , а теперь вот залез туды.. пытаюсь этот swedish сменить... А выбирать-то особо не из чего группа latin и utf8 только дсотупна ;( Куда все кодировки подевались и что теперь для нормального хранениярусского нужно ставить?
Voyager2K
 
Сообщений: 37
Зарегистрирован: Вс фев 27, 2005 12:34 pm

Сообщение Voyager2K » Ср май 11, 2005 1:35 am

Аллоу ? Что никто не знает ответа на мой вопрос ? Тоды, плиз, хоть подскажите какой из utf8_ использовать дабы это было аналогие cp1251 ?
Voyager2K
 
Сообщений: 37
Зарегистрирован: Вс фев 27, 2005 12:34 pm


Вернуться в Базы данных

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2