Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как узнать, какую кодировку использует клиент при подключении? / 4 сообщений из 4, страница 1 из 1
21.11.2016, 21:36
    #39351480
DRVTiny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать, какую кодировку использует клиент при подключении?
Здравствуйте!

Есть у моей базы MySQL 5.7 (enterprise-лицензия) клиент, висит подолгу.

Отличается мерзким поведением: берёт из базы строку с русскими буквами, что-то там с ней делает и создаёт новую запись в базе (видоизменённый клон исходной), в которой исходная строка уже "битая" - вместо русских буков я вижу "?" в том же количестве и на тех же местах, где раньше была родная и милая сердцу кириллица.

Есть подозрение, что клиент по каким-то неведомым причинам скатился в... latin1.

Нужно это как-то проверить, но клиент тот - простой бинарник (zabbix_server, если это может быть полезно), компилируемый из сотни-другой сишных файлов, так что лезть в этот кодовый ад и дебажить его - мне пока ещё не улыбается.

Хотелось бы проще: зайти root'ом на сервер MySQL и спросить: "Мускуль, а вот скажи-ка мне, какие кодировки используют клиенты, пришедшие к тебе с IP такого-то?"

В том же воркбенче можно посмотреть очень многое... но что-то просто перечень текущих соединений, в котором можно было узнать свойства оных соединений я там не нашёл. Может быть, плохо искал? Неужели даже в Enteprise-ной версии такую, казалось бы, элементарную информацию получить никак нельзя?

Как всё-таки узнать настройки кодировок при обмене между моим сервером и НЕ моим клиентом?

Заранее огромное спасибо!
...
Рейтинг: 0 / 0
21.11.2016, 22:12
    #39351495
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать, какую кодировку использует клиент при подключении?
DRVTiny,

Можно попробовать включить Query Log, посмотреть не дает ли этот клиент каких- либо команд, связанных с кодировками.
Но есть шанс, что он просто врет кодировку где-то внутри себя. И тогда упражнения с MySQL могут и не помочь.

Прошу прощения за оффтоп:
DRVTinyenterprise-лицензияВпервые, наверное, вижу, что кто-то использует Enterprise-лицензию.
Можно полюбопытствовать, для чего?
И, кстати, техподдержка не должна помогать в таких случаях?
...
Рейтинг: 0 / 0
21.11.2016, 22:21
    #39351500
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать, какую кодировку использует клиент при подключении?
miksoftИ, кстати, техподдержка не должна помогать в таких случаях?
Почему техподдержка MySQL должна помогать в случаях, когда сторонний клиент шлёт голимую хреноту?

DRVTinyисходная строка уже "битая" - вместо русских буков я вижу "?" в том же количестве и на тех же местах, где раньше была родная и милая сердцу кириллица.Какой бы ты клиент не использовал, хранящаяся в БД информация перед отображением проходит минимум два преобразования кодировки (и крайне редко исходная кодировка преобразования совпадает с конечной). Думаю, что самое правильное - это выловить сниффером оригинал передаваемой на клиента и от клиента (после обработки) информации, и по этим данным пытаться понять, что отдаёт клиент.

PS. Запросто может ведь статься, что это клиент получает данные вовсе не в той кодировке, в которой должен... и вообще - как определить, кто более прав?
...
Рейтинг: 0 / 0
21.11.2016, 22:44
    #39351502
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать, какую кодировку использует клиент при подключении?
DRVTinyОтличается мерзким поведением: берёт из базы строку с русскими буквами, что-то там с ней делает и создаёт новую запись в базе (видоизменённый клон исходной)А как много времени проходит между "берёт" и "создаёт"? Как велики паузы между запросами? У меня было такое, что за секунды сервер успевал отваливаться от клиента (были установлены очень малые значения в директивах idle_timeout или как-то так), а после автоматического переподключения клиент заново не инициализировал соединение с правильной кодировкой. Вернули дефолтовое значение, вроде, восемь часов - нормально стало.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как узнать, какую кодировку использует клиент при подключении? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]