URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8967
[ Назад ]

Исходное сообщение
"И опять mysql + кодировки"

Отправлено Hawk , 15-Дек-10 14:31 
задача такая
есть хостинг, на хостинге сайт. cms коннектится к БД на сервере хостера.
Настройки БД на сервере
character_set_client    utf8
character_set_connection    utf8
character_set_database    cp1251
character_set_filesystem    binary
character_set_results    utf8
character_set_server    cp1251
character_set_system    utf8

Далее - задача.
На локалхост (centos 5) в /var/www/httpd копирую дамп cms.
Ничего не меняя, захожу на него. В полях, тянущихся с БД - ?? вместо русских букв. Текст, что является частью файлов cms отображается нормально.
База - та же, файлы и настройки движка - тоже. С апачем так все норм - кажет ведь кодировку нормально.

ковырялся в локальном /etc/my.cnf - прописывание default-character-set в секциях [mysql] и [client] эффекта не дает.

получается, проблема в php?


Содержание

Сообщения в этом обсуждении
"И опять mysql + кодировки"
Отправлено pavlinux , 16-Дек-10 00:45 
>[оверквотинг удален]
> получается, проблема в php?

Ага, всё он гад...

$ cat dump.sql

SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;
SET COLLATION_CONNECTION=utf8_general_ci;
SET NAMES utf8;

CREATE TABLE IF NOT EXISTS `....
...


$ mysql -h 127.0.0.1 -u shaitan -p -D dabataza  < dump.sql;


"И опять mysql + кодировки"
Отправлено Hawk , 16-Дек-10 16:30 
>[оверквотинг удален]
>> получается, проблема в php?
> Ага, всё он гад...
> $ cat dump.sql
> SET CHARACTER_SET_CLIENT=utf8;
> SET CHARACTER_SET_RESULTS=utf8;
> SET COLLATION_CONNECTION=utf8_general_ci;
> SET NAMES utf8;
> CREATE TABLE IF NOT EXISTS `....
> ...
> $ mysql -h 127.0.0.1 -u shaitan -p -D dabataza  < dump.sql;

ну тут все понятно, но это не катит
хочу с реальной базой работать, т.е. база как стояла на хостинге, так и стоит.
Сливаешь дамп http на локалхост, првишь что нужно, не внося никаких изменений никуда в конфиги.


"И опять mysql + кодировки"
Отправлено Hawk , 16-Дек-10 16:39 
дамп слил, страничку поправил, проверил, обратно залил, не трогая базу.


"И опять mysql + кодировки"
Отправлено pavlinux , 16-Дек-10 17:37 
>>[оверквотинг удален]
> ну тут все понятно, но это не катит
> хочу с реальной базой работать, т.е. база как стояла на хостинге,
> так и стоит.
> Сливаешь дамп http

Что такое дамп http??? :)

> на локалхост, првишь что нужно, не внося никаких изменений никуда в конфиги.

То есть веб-сервак на 127/8, а МуSQL где-то долеко?




"И опять mysql + кодировки"
Отправлено Hawk , 17-Дек-10 17:02 
> Что такое дамп http??? :)

копия директории где лежит cms.

> То есть веб-сервак на 127/8, а МуSQL где-то долеко?

да, вебсервер с копией сайта развернут локально, а БД как была у хостера - так и лежит.



"И опять mysql + кодировки"
Отправлено pavlinux , 17-Дек-10 17:42 
>> Что такое дамп http??? :)
> копия директории где лежит cms.

Кстати, права проверь, мож чего не читается.
Было у меня пару раз, локальный umask был 077 (rwx-----), а удалённый 022 (rwxr--r-)  

>> То есть веб-сервак на 127/8, а МуSQL где-то долеко?
> да, вебсервер с копией сайта развернут локально, а БД как была у
> хостера - так и лежит.

1. Сохранить с удалённого сервака переменные (SHOW VARIABLES;)
2. Сохранить с локального сервака переменные (SHOW VARIABLES;)
3. diff -u remote.txt local.txt
4. Сделать дамп базы и засунуть её в локальный MySQL.

Сразу бы отпал вопрос от разных кодировках используемых при коннекте.