Проблема с кодировкой в базе mysql.

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Проблема с кодировкой в базе mysql.

Непрочитанное сообщение klimov » 2007-05-30 14:39:13

Добрый день всем. Возникла проблема с читабельностью кирилицы в базе mysql 5. Установил для интереса программу aimsniff, Все запускается и работает при запуски программы в консоли все нормально отображается, но возникает проблемма при попытке прочесть те же сообщения из базы mysql, вместо слов знаки вопросов. Mysql ставил по статье уважаемого Лиссяры, в my.cnf прописал default-cheracter-set=cp1251, чего только не пробовал но так и не смог решить данную проблемму. Может кто то сталкивался.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: Проблема с кодировкой в базе mysql.

Непрочитанное сообщение lexy » 2007-05-30 15:21:24

klimov писал(а):... в консоли все нормально отображается, но возникает проблемма при попытке прочесть те же сообщения из базы mysql, вместо слов знаки вопросов. ...
прочесть чем?
если из PHP то после mysql_select_db() выполни mysql_query("SET NAMES 'cp1251'");

2lissyara:
Предлагаю в каждом из форумов сделать ветку FAQ, чтоб по 100 раз не отвечать на одни и те же вопросы (на подобный этому вопрос я отвечал уже раза 2 :) )

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-30 16:43:30

my.cnf

Код: Выделить всё

[client]
default-character-set = koi8r
character_sets_dir = /usr/local/share/mysql/charsets

[mysqld]
#default_character_set = koi8r
#character_set_server = koi8r
character_sets_dir = /usr/local/share/mysql/charsets
language = /usr/local/share/mysql/russian/
init-connect = "SET NAMES koi8r"
Параметрами такими побалуйся с нужными тебе кодировками.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-30 16:45:13

Попробуй выставить кодировку, с помощью которой в базу данные записывались. Вполне может быть UTF.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Re: Проблема с кодировкой в базе mysql.

Непрочитанное сообщение klimov » 2007-05-30 17:43:31

lexy писал(а):
klimov писал(а):... в консоли все нормально отображается, но возникает проблемма при попытке прочесть те же сообщения из базы mysql, вместо слов знаки вопросов. ...
прочесть чем?
если из PHP то после mysql_select_db() выполни mysql_query("SET NAMES 'cp1251'");

2lissyara:
Предлагаю в каждом из форумов сделать ветку FAQ, чтоб по 100 раз не отвечать на одни и те же вопросы (на подобный этому вопрос я отвечал уже раза 2 :) )
Это я пробовал так же как и все другие возможные варианты cp866, koi8r,utf8, не помогает-((((. Пробовал делать запросы напрямую из консоли тоже самое одни вопросы вместо кирилицы, латиница нормально отображается. P.S. в форуме все подобные ткмы прочитал но SET NAMES 'cp1251 не помогает, сейчас лопачу форум http://www.mysql.ru, таких проблем просто море.

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-05-30 17:44:17

dikens3 писал(а):my.cnf

Код: Выделить всё

[client]
default-character-set = koi8r
character_sets_dir = /usr/local/share/mysql/charsets

[mysqld]
#default_character_set = koi8r
#character_set_server = koi8r
character_sets_dir = /usr/local/share/mysql/charsets
language = /usr/local/share/mysql/russian/
init-connect = "SET NAMES koi8r"
Параметрами такими побалуйся с нужными тебе кодировками.
Спасибо за совет, так еще не пробовал, попробую.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-05-30 17:50:20

тю, так у тебя походу консоль настроена на кои8, а в базе сп1251 .... как вариант, это mysqldump + iconv






FF

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-30 18:16:42

Ну mysqldump в нужной кодировке нормально прокатит, только надо ли так?

Код: Выделить всё

#!/bin/sh

user="root"
pass="pass"
base="exim"
#base="--all-databases"

mysqldump --default-character-set=koi8r --compact -u$user -p$pass $base > dump.sql
Типа того...
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-05-30 19:31:48

Спасибо за совет сейчас попробую, отпишусь.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-30 22:58:25

2 lexy
вот и сделай :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-05-31 14:35:43

все советы перепробовал пока что ???? вместо кирилицы, консоль переделал на cp1251, не помогло-(((. Буду форум mysql лопатить.

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-06-01 13:41:26

Так и не удалось ничего путнего найти на эту тему, может быть у кого то есть еще мысли на эту тему. Вот мой вывод команды SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | cp1251 |
| character_set_connection | cp1251 |
| character_set_database | cp1251 |
| character_set_filesystem | binary |
| character_set_results | cp1251 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------
консоль в русифицирована под cp1251 вот вывод из базы
| 7 | 2007-06-01 17:30:53 | 192.168.0.208 | 419110158 | | 00040007 | ????? ? 18-00 ????????, ???????? 18-15 ???? ? ???? |
| 8 | 2007-06-01 17:31:10 | 192.168.0.208 | | 419110158 | 00040006 | ??????? |
| 9 | 2007-06-01 17:31:41 | 192.168.0.1 | 311871123 | | 00040007 | ??????! ????? ??????????
Вместо кирилицы знаки вопросов.
Пробовал делать вывод в текстовый файл все сохраняется нормально
AIM##TYPE##Incoming Message##TS##2007-6-1 17:32:57##FAMILY##00040007##FROM##60680667##DESTHANDLE####DESTIP##192.168.0.17##MESSAGE##Звонка не поступило от тебя....
AIM##TYPE##Outgoing Message##TS##2007-6-1 17:33:12##FAMILY##00040006##FROM####DESTHANDLE##60680667##SRCIP##192.168.0.17##MESSAGE##да потому что засада
AIM##TYPE##Incoming Message##TS##2007-6-1 17:33:26##FAMILY##00040007##FROM##60680667##DESTHANDLE####DESTIP##192.168.0.17##MESSAGE##счет приняли значит?

Может кто еще чего посоветует-(((. Хочется разобраться.

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Непрочитанное сообщение lexy » 2007-06-02 15:02:51

[mysqld]
#default_character_set = koi8r
#character_set_server = koi8r
character_sets_dir = /usr/local/share/mysql/charsets
language = /usr/local/share/mysql/russian/
init-connect = "SET NAMES koi8r"
обрати внимание на выделенный параметр из my.cnf, поиграй кодировками и не забывай перезапустить mysqld

PSdok
ст. сержант
Сообщения: 359
Зарегистрирован: 2006-10-05 18:27:56
Откуда: Нижний НОвгород

Непрочитанное сообщение PSdok » 2007-06-05 8:05:02

Тоже столкнулся с такой же бедой.
Перепробовал все. Бросил.
Через день гляжу пишет все нормально.
вот рабочий файл

Код: Выделить всё

# cat my.cnf
[client]
port            = 3306
socket = /tmp/mysql/mysql.sock


[mysqld]
port            = 3306
datadir=/var/lib/mysql
socket = /tmp/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
server-id       = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
поправил файл .global.php (это веб интерфейс, самое начало)

Код: Выделить всё

$CONF["db_connid"] = mysql_connect($dbserver, $dbuser, $dbpwd);
mysqli_query($dbname,'SET NAMES "cp1251"');
mysqli_query($dbname,"SET collation_connection='cp1251_general_ci'");
mysqli_query($dbname,"SET collation_server='cp1251_general_ci'");
mysqli_query($dbname,"SET character_set_client='cp1251'");
mysqli_query($dbname,"SET character_set_connection='cp1251'");
mysqli_query($dbname,"SET character_set_results='cp1251'");
mysqli_query($dbname,"SET character_set_server='cp1251'");
mysql_select_db($dbname, $CONF["db_connid"]);


Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-06-05 8:20:34

tormozok писал(а):Тоже столкнулся с такой же бедой.
Перепробовал все. Бросил.
Через день гляжу пишет все нормально.
вот рабочий файл

Код: Выделить всё

# cat my.cnf
[client]
port            = 3306
socket = /tmp/mysql/mysql.sock


[mysqld]
port            = 3306
datadir=/var/lib/mysql
socket = /tmp/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
server-id       = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
поправил файл .global.php (это веб интерфейс, самое начало)

Код: Выделить всё

$CONF["db_connid"] = mysql_connect($dbserver, $dbuser, $dbpwd);
mysqli_query($dbname,'SET NAMES "cp1251"');
mysqli_query($dbname,"SET collation_connection='cp1251_general_ci'");
mysqli_query($dbname,"SET collation_server='cp1251_general_ci'");
mysqli_query($dbname,"SET character_set_client='cp1251'");
mysqli_query($dbname,"SET character_set_connection='cp1251'");
mysqli_query($dbname,"SET character_set_results='cp1251'");
mysqli_query($dbname,"SET character_set_server='cp1251'");
mysql_select_db($dbname, $CONF["db_connid"]);

Спасибо сейчас попробую, а версия aimsniff у тебя 0,9dr005?

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-06-05 8:33:35

Странно у меня при исправлении .global.php пишет ошибку Fatal error: Call to undefined function: mysqli_query() in /usr/local/www/was/.global.php on line 6

PSdok
ст. сержант
Сообщения: 359
Зарегистрирован: 2006-10-05 18:27:56
Откуда: Нижний НОвгород

Непрочитанное сообщение PSdok » 2007-06-05 9:49:03

да версия 0,9dr005
она с кирилицей работает
скачал с сайта

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-06-05 9:57:54

tormozok писал(а):да версия 0,9dr005
она с кирилицей работает
скачал с сайта
Покажи плиз вывод свой
SHOW VARIABLES LIKE 'char%';

PSdok
ст. сержант
Сообщения: 359
Зарегистрирован: 2006-10-05 18:27:56
Откуда: Нижний НОвгород

Непрочитанное сообщение PSdok » 2007-06-05 10:11:46

Код: Выделить всё

Покажи плиз вывод свой 
SHOW VARIABLES LIKE 'char%';
это как?

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-06-05 11:54:15

tormozok писал(а):

Код: Выделить всё

Покажи плиз вывод свой 
SHOW VARIABLES LIKE 'char%';
это как?
Зайди в mysql и там сделай эту команду, то что выведется напиши здесь плиз.

PSdok
ст. сержант
Сообщения: 359
Зарегистрирован: 2006-10-05 18:27:56
Откуда: Нижний НОвгород

Непрочитанное сообщение PSdok » 2007-06-05 18:38:24

Код: Выделить всё

mysql> SHOW VARIABLES LIKE 'char%';
+-------------------------------+----------------------------------+
|       Variable_name            |       Value                            |
+-------------------------------+----------------------------------+
| character_set_client            |       latin1                           |
| character_set_connection     |      latin1                           |
| character_set_database       |      latin1                           |
| character_set_results           |      latin1                           |
| character_set_server           |      latin1                           |
| character_set_system           |     utf8                             |
| character_sets_dir                | /usr/local/share/mysql/charsets/ |
+----------------------------------+----------------------------------+

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-06-06 5:50:57

Теперь понятно спасибо большое, у тебя mysql установлен с поддержкой кодировки latin1, а у меня cp1251 в этом похоже и есть ошибка, так я не пробовал. По результатам отпишусь.

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-06-06 7:59:54

Все проблема решилась, спасибо tormozok за помощь. Хотя странно какое отношение кодировка latin1 имеет к кирилице-)))) может кто подскажет.

PSdok
ст. сержант
Сообщения: 359
Зарегистрирован: 2006-10-05 18:27:56
Откуда: Нижний НОвгород

Непрочитанное сообщение PSdok » 2007-06-06 8:07:20

еще косяк
если пишут из локальной сети номер аськи не определяет, пихает вместо него IP

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-06-06 8:16:25

tormozok писал(а):еще косяк
если пишут из локальной сети номер аськи не определяет, пихает вместо него IP
а ты с внутреннего интерфейса снимаешь данные?