mysql иероглифы {ламачина}

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-25 13:14:59

Gamerman писал(а):Базу можеш оставить в старой виндовой кодировке. Проосто серверу нужно знать, в какой кодировке отдавать даные клиенту. Для этого и служит set names. Ведь разные клиенты что работают с одним сервером, могут быть в разных кодировках. Сервер должен знать в какой кодировка отдавать данные в сессии.
мне надо в забиксе создать юзера русского (с этим проблем нет)
и чтобы он в базе отображался по русски (проблема(ероглифы))
как вылечить ? всё крутицо на локалхосте ... фря 7.0
JunOS kernel based on FreeBSD UNIX.

Хостинговая компания 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/

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение Gamerman » 2009-09-25 13:16:02

Ты проделал те шаги?

ЗЫ. Извини, что на "ты", мне так удобней писать :)
Глюк глюком вышибают!

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-25 13:36:58

Gamerman писал(а):Ты проделал те шаги?

ЗЫ. Извини, что на "ты", мне так удобней писать :)
нет , не получается - я через пма работаю,
а в пма не соображу куда нжимать. короче у меня начинается паника.
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение Gamerman » 2009-09-25 13:47:13

А консольный клиент почему не используешь?

Мне кажеться, что у тебя следующая проблема:
Сервер хранит данные в кодировке ср1.
Для того, чтобы он мог работать с разными клиентами в разных кодировках, он может получить команду set names cp2.
Тогда он будет сам перекодировать и отдавать даные клиенту в кодировке ср2. Но если клиент говорит, что будет работать в кодировке ср2, а на самом деле работает в кодировке ср3, то на сервер попадут даные в кривоперекодированом виде. При этом работа даного клиента и сервера будет казаться, что проходит правильно, то есть даные будут читаться правильно. При этом другой клиент уже будет получать кривоперекодированые данные и получит мусор.

Чтобы определить, где затык, нужно с сервером работать в заведомо известной кодировке. То есть, если точно известно, что клиент будет рабоатть в кодировке ср4, то и указывать set names cp4;

Возможно у тебя Пма говорит, что работает в кои8, а броузер при этом забивает даные в вин1251. Тогдп ПМА будет данные показывать верно, но все другие клиенты покажут бред.
Глюк глюком вышибают!

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение Gamerman » 2009-09-25 13:53:47

Похожие проблемы когда то были с письмами через веб-морды. Броузер работал в одной кодировке, а письмо отправлялос в другой. И тогда получатель письма не мог прочитать его ни в одной из кодировок. Тогда даже специальные програмы перекодировщики были.
Глюк глюком вышибают!

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-25 14:04:09

я вас понял, в бровзере всё ок.
создал тестовую таблицу - всё ок.
но со старыми таже грабля.
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение Gamerman » 2009-09-25 14:07:10

vintovkin писал(а): но со старыми таже грабля.
Пересоздайте.
Глюк глюком вышибают!

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-25 14:11:11

Gamerman писал(а):
vintovkin писал(а): но со старыми таже грабля.
Пересоздайте.
так всё ок:

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

mysql> create database tt ;
Query OK, 1 row affected (0.00 sec)

mysql> create table `test` (`field` VARCHAR(60));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into `test` values ('иван'), ('родил'), ('девчёнку');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from `test`;
+----------+
| field    |
+----------+
| иван     |
| родил    |
| девчёнку |
+----------+
3 rows in set (0.00 sec)

mysql>
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-25 14:12:16

в пма

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

ЙЧБО
 	 	 	ТПДЙМ
 	 	 	ДЕЧЮЈОЛХ
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-25 14:14:14

тут вопросы(в базе тт).

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

 	 	????
 	 	 	?????
 	 	 	????????
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение Gamerman » 2009-09-25 18:40:42

Вопросы (знаки) когда возникают?
Глюк глюком вышибают!

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-30 8:12:46

Gamerman писал(а):Вопросы (знаки) когда возникают?
из командной строки всё ок,
но через пма баги,
вопрос - может быть проблема с пхп скриптами через которые прогаю мускуль?
типа в пхп выставить чарсет_конекшн=кои8р и т.д... :oops:
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-30 8:49:06

создаю базу (русскую) в пма через бровзер - всё отображается ок.
через мускуль клиента тоже всё ок:

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

mysql>
mysql>
mysql> use тесе ;
ERROR 1049 (42000): Unknown database 'я?п?я?п?'
mysql> set names koi8r ;
Query OK, 0 rows affected (0.00 sec)

mysql> use тест ;
Database changed
mysql> select * from тест ;
ERROR 1146 (42S02): Table 'я?п?я?я?.я?п?я?я?' doesn't exist
mysql> select * from таблица ;
+------+---------+
| имя  | возраст |
+------+---------+
| вася | 12      |
| федя | 22      |
+------+---------+
2 rows in set (0.00 sec)

mysql>
как мне сделать чтоб в забикс БД было также?
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение Gamerman » 2009-09-30 9:51:44

vintovkin писал(а): вопрос - может быть проблема с пхп скриптами через которые прогаю мускуль?
Думаю - да.
Глюк глюком вышибают!

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-30 10:17:27

Gamerman писал(а):
vintovkin писал(а): вопрос - может быть проблема с пхп скриптами через которые прогаю мускуль?
Думаю - да.
а вот это ни как не влияет:
character set client utf8
(Глобальное значение) latin1
character set connection koi8r
(Глобальное значение) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Глобальное значение) latin1
character set server latin1
character set system utf8
character sets dir /usr/local/share/mysql/charsets/
collation connection koi8r_general_ci
(Глобальное значение) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
completion type
?
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение Gamerman » 2009-09-30 10:20:56

vintovkin писал(а): а вот это ни как не влияет:
character set client utf8
(Глобальное значение) latin1
character set connection koi8r
(Глобальное значение) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Глобальное значение) latin1
character set server latin1
character set system utf8
character sets dir /usr/local/share/mysql/charsets/
collation connection koi8r_general_ci
(Глобальное значение) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
completion type
?
Это где такое?

А название кирилицей баз и таблиц обязательно?
Глюк глюком вышибают!

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-30 10:45:28

Gamerman писал(а):
vintovkin писал(а): а вот это ни как не влияет:
character set client utf8
(Глобальное значение) latin1
character set connection koi8r
(Глобальное значение) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Глобальное значение) latin1
character set server latin1
character set system utf8
character sets dir /usr/local/share/mysql/charsets/
collation connection koi8r_general_ci
(Глобальное значение) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
completion type
?
Это где такое?

А название кирилицей баз и таблиц обязательно?
pma - Серверные переменные и настройки
JunOS kernel based on FreeBSD UNIX.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение Gamerman » 2009-09-30 10:48:44

pma - Серверные переменные и настройки
Возможно что и влияет, иначе зачем бы его делали? С РМА не работал - не знаю. Читайте доки по нему.
Глюк глюком вышибают!

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение zg » 2009-09-30 15:44:05

надо базу перевести в нормальную кодировку и можно будет забыть о проблемах. PMA в любом случае выставляет кодировки на соединение, а это значит, что если данные были внесены в кривой кодировке, то при любых настройках результатом будут вопросики или кракозябры.

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-09-30 16:47:23

zg писал(а):надо базу перевести в нормальную кодировку и можно будет забыть о проблемах. PMA в любом случае выставляет кодировки на соединение, а это значит, что если данные были внесены в кривой кодировке, то при любых настройках результатом будут вопросики или кракозябры.
привет zg , спасибо что ответили)
я понимаю что надо так сделать , но не могу понять ещё как!
в пма я выставил везде koi8r (где только можно)

вот опять вот такой баг получил на забиксе, когда юзера создаёш:
Error in query [select * from users where alias='федя' and (userid div 100000000000000) in (0) ] [Illegal mix of collations (koi8r_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=']
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource[/usr/local/share/zabbix/php/include/db.inc.php:519]
что у меня не так?какие конфиги выложить чтобы пролить свет на проблему?хожу как зомби - эта кодировка мешает жить :smile:
JunOS kernel based on FreeBSD UNIX.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение zg » 2009-09-30 18:18:17

vintovkin писал(а):я понимаю что надо так сделать , но не могу понять ещё как!
тут всё надо делать следующим образом:
1. Получить дамп в правильной кодировке
2. Настроить мускул для работы в нужной кодировке
3. Импортировать дамп обратно

Получить читабельный дамп можно с помощью моей тулзы http://anton-pribora.ru/my/scripts/my_dump.sh.txt , например так:

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

zg# fetch -o my_dump.sh http://anton-pribora.ru/my/scripts/my_dump.sh.txt
my_dump.sh                                    100% of 2405  B  646 kBps
zg# chmod +x my_dump.sh
zg# ./my_dump.sh -u ЛОГИН -h ХОСТ -p ПАРОЛЬ -f latin1 -t utf8 ИМЯ_БАЗЫ > dump.txt
В этом случае дамп будет в той кодировке, которая использовась при заведении базы в latin1, обычно это cp1251 или koi8r.

Потом в получившийся дамп добавляешь в самое начало (cp1251 это кодировка дампа)

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

set names cp1251;
После этого проверяешь работоспособность дампа на тестовой базе. Через пма всё должно нормально отображаться. Ну и затем сносишь неправильную базу, создаёшь новую с кодировкой по умолчанию utf8 и заливаешь туда дамп. :smile:

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-10-01 8:22:13

спасибо!
буду делать сегодня.
кстати читаю ман по mysql оч интересно
заметил что он сильно похож логически на фрю))
команды и т.д.
JunOS kernel based on FreeBSD UNIX.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение zg » 2009-10-02 16:25:50

Разобрался? :smile:

Аватара пользователя
vintovkin
ВДВ
Сообщения: 1291
Зарегистрирован: 2007-05-11 9:39:11
Откуда: CSKA

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение vintovkin » 2009-10-05 10:39:26

zg писал(а):Разобрался? :smile:
привет zg! нет не получается у меня;
1 - создал БД в ПМА (сравнение utf8 Сопоставление соединения с MySQL koi8r)
2 - создаю юзера Вася в веб интерфейсе на забиксе - всё ок , отображает всё по русски.
3- залазию в ПМА - иероглифы
вот логи:

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

zabbix# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 91
Server version: 5.0.86-log FreeBSD port: mysql-server-5.0.86

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use openfire
Database changed
mysql> select alias from users ;
+----------+
| alias    |
+----------+
| Admin    |
| guest    |
| ????     |
| ???°???? |
+----------+
4 rows in set (0.00 sec)

mysql> set names cp1251 ;
Query OK, 0 rows affected (0.00 sec)

mysql> select alias from users ;
+----------+
| alias    |
+----------+
| Admin    |
| guest    |
| ????     |
| ???????? |
+----------+
4 rows in set (0.00 sec)

mysql> set names utf8 ;
Query OK, 0 rows affected (0.00 sec)

mysql> select alias from users ;
+------------------+
| alias            |
+------------------+
| Admin            |
| guest            |
| ц?Б??ц?ф?        |
| ц?б?ц?б?ц?б?ц?б? |
+------------------+
4 rows in set (0.00 sec)

mysql> Bye
JunOS kernel based on FreeBSD UNIX.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: mysql иероглифы {ламачина}

Непрочитанное сообщение zg » 2009-10-06 5:09:13

vintovkin писал(а):3- залазию в ПМА - иероглифы
забикс в какой кодировке работает?

проблема в следующем - когда вносятся данные в базу, кодировка уже стоит неверная.

Выложи

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

# mysql -e 'show variables like "char%"'
и

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

grep charset /path/to/my.cnf