SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.12.2011 16:04:22

Hafner
Участник
Откуда: Москва
Зарегистрирован: 21.01.2009
Сообщений: 16

Кодировка при локальном и удаленном подключении к бд

Доброго времени суток!

Столкнулся с со следующей проблемой: есть база мускула на локальной машине, есть приложение, которое периодически инсертит в базу определенные данные. Так вот, если приложение установлено на удаленной машине и следовательно запросы шлет на мой сервер бд, который размещен на локальной машине, то проблем НЕТ - все данные отображаются в нужной кодировке utf8. Но для приложения, которое запускается локально, т.е. на той же машине, что и бд, то все данные в базу заносятся в иероглифах=/

В чем может быть проблема?

Неактивен

 

#2 17.12.2011 18:59:33

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Кодировка при локальном и удаленном подключении к бд

Проверьте кодировки соединений, наверняка отличаются. Чтобы не отличались, каждый клиент после соединения должен выполнять запрос "SET NAMES нужная_кодировка", тогда и проблем таких не будет.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 17.12.2011 21:44:50

Hafner
Участник
Откуда: Москва
Зарегистрирован: 21.01.2009
Сообщений: 16

Re: Кодировка при локальном и удаленном подключении к бд

Neval написал:

Проверьте кодировки соединений

Где кодировки соединений? Кодировки прописаны верно:

show global variables like '%char%';
character_set_client    utf8
character_set_connection    utf8
character_set_database    utf8
character_set_filesystem    binary
character_set_results    utf8
character_set_server    utf8
character_set_system    utf8
character_sets_dir    C:\host\MySQL\share\charsets\

Неактивен

 

#4 17.12.2011 22:42:49

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Кодировка при локальном и удаленном подключении к бд

1. Такой результат выдаёт на обоих клиентах?
2. Собственно этот запрос был выполнен непосредственно в клиентах или из другого софта, типа phpMyAdmin, MySQL Workbench, etc?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#5 18.12.2011 13:01:30

Hafner
Участник
Откуда: Москва
Зарегистрирован: 21.01.2009
Сообщений: 16

Re: Кодировка при локальном и удаленном подключении к бд

Такой результат получаю в phpmyadmin на локальной машине.

В общем проблема решена следующим образом: в приложении на локальной машине выставлен внешний айпишник бд вместо 127.0.0.1 и добавлены привилегии для него:

GRANT USAGE ON *.* TO 'root'@'92.xx.xx.xx' IDENTIFIED BY PASSWORD 'xxxxxxxxxxx';
GRANT ALL PRIVILEGES ON `tbl`.* TO 'root'@'92.xx.xx.xx';


Почему так работает? hmm

Неактивен

 

#6 18.12.2011 13:22:04

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Кодировка при локальном и удаленном подключении к бд

Hafner написал:

Такой результат получаю в phpmyadmin на локальной машине.

Это не правильно, кодировку проверять нужно непосредственно из клиентских приложений. Понятное дело, что phpMyAdmin знает проблему кодировок, по сему постоянно её корректирует для своей работы.

Hafner написал:

Почему так работает? hmm

Тут не подскажу, связи не вижу smile Подождём, может кто в курсе и просвятит.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#7 19.12.2011 09:51:27

Hafner
Участник
Откуда: Москва
Зарегистрирован: 21.01.2009
Сообщений: 16

Re: Кодировка при локальном и удаленном подключении к бд

Neval написал:

Это не правильно, кодировку проверять нужно непосредственно из клиентских приложений.

Это не web-приложение и именно там проверить кодировку нет возможности. Но, имхо, проблема именно в настройках мускула, т.к. при замене локального адреса на внешний всё заработало как надо...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson