Проблема с кодировкой в базе mysql.
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- klimov
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk
Проблема с кодировкой в базе mysql.
Добрый день всем. Возникла проблема с читабельностью кирилицы в базе mysql 5. Установил для интереса программу aimsniff, Все запускается и работает при запуски программы в консоли все нормально отображается, но возникает проблемма при попытке прочесть те же сообщения из базы mysql, вместо слов знаки вопросов. Mysql ставил по статье уважаемого Лиссяры, в my.cnf прописал default-cheracter-set=cp1251, чего только не пробовал но так и не смог решить данную проблемму. Может кто то сталкивался.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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.
прочесть чем?klimov писал(а):... в консоли все нормально отображается, но возникает проблемма при попытке прочесть те же сообщения из базы mysql, вместо слов знаки вопросов. ...
если из PHP то после mysql_select_db() выполни mysql_query("SET NAMES 'cp1251'");
2lissyara:
Предлагаю в каждом из форумов сделать ветку FAQ, чтоб по 100 раз не отвечать на одни и те же вопросы (на подобный этому вопрос я отвечал уже раза 2

- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
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
- Откуда: Нижний Новгород
- Контактная информация:
- klimov
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk
Re: Проблема с кодировкой в базе mysql.
Это я пробовал так же как и все другие возможные варианты cp866, koi8r,utf8, не помогает-((((. Пробовал делать запросы напрямую из консоли тоже самое одни вопросы вместо кирилицы, латиница нормально отображается. P.S. в форуме все подобные ткмы прочитал но SET NAMES 'cp1251 не помогает, сейчас лопачу форум http://www.mysql.ru, таких проблем просто море.lexy писал(а):прочесть чем?klimov писал(а):... в консоли все нормально отображается, но возникает проблемма при попытке прочесть те же сообщения из базы mysql, вместо слов знаки вопросов. ...
если из PHP то после mysql_select_db() выполни mysql_query("SET NAMES 'cp1251'");
2lissyara:
Предлагаю в каждом из форумов сделать ветку FAQ, чтоб по 100 раз не отвечать на одни и те же вопросы (на подобный этому вопрос я отвечал уже раза 2)
- klimov
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk
Спасибо за совет, так еще не пробовал, попробую.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"
-
- проходил мимо
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Ну 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
- Alex Keda
- стреляли...
- Сообщения: 35418
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- klimov
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk
- klimov
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk
Так и не удалось ничего путнего найти на эту тему, может быть у кого то есть еще мысли на эту тему. Вот мой вывод команды 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##счет приняли значит?
Может кто еще чего посоветует-(((. Хочется разобраться.
+--------------------------+----------------------------------+
| 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
- Откуда: Волхов, ЛО
- Контактная информация:
обрати внимание на выделенный параметр из my.cnf, поиграй кодировками и не забывай перезапустить mysqld[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"
-
- ст. сержант
- Сообщения: 359
- Зарегистрирован: 2006-10-05 18:27:56
- Откуда: Нижний НОвгород
Тоже столкнулся с такой же бедой.
Перепробовал все. Бросил.
Через день гляжу пишет все нормально.
вот рабочий файл
поправил файл .global.php (это веб интерфейс, самое начало)
Перепробовал все. Бросил.
Через день гляжу пишет все нормально.
вот рабочий файл
Код: Выделить всё
# 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
Код: Выделить всё
$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
Спасибо сейчас попробую, а версия aimsniff у тебя 0,9dr005?tormozok писал(а):Тоже столкнулся с такой же бедой.
Перепробовал все. Бросил.
Через день гляжу пишет все нормально.
вот рабочий файлпоправил файл .global.php (это веб интерфейс, самое начало)Код: Выделить всё
# 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
Код: Выделить всё
$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
-
- ст. сержант
- Сообщения: 359
- Зарегистрирован: 2006-10-05 18:27:56
- Откуда: Нижний НОвгород
- klimov
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk
-
- ст. сержант
- Сообщения: 359
- Зарегистрирован: 2006-10-05 18:27:56
- Откуда: Нижний НОвгород
Код: Выделить всё
Покажи плиз вывод свой
SHOW VARIABLES LIKE 'char%';
- klimov
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk
Зайди в mysql и там сделай эту команду, то что выведется напиши здесь плиз.tormozok писал(а):это как?Код: Выделить всё
Покажи плиз вывод свой SHOW VARIABLES LIKE 'char%';
-
- ст. сержант
- Сообщения: 359
- Зарегистрирован: 2006-10-05 18:27:56
- Откуда: Нижний НОвгород
Код: Выделить всё
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
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk
-
- ст. сержант
- Сообщения: 359
- Зарегистрирован: 2006-10-05 18:27:56
- Откуда: Нижний НОвгород
- klimov
- мл. сержант
- Сообщения: 77
- Зарегистрирован: 2007-04-19 7:06:36
- Откуда: Novosibirsk