слетели кодировки баз

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-=Ded=-
проходил мимо

слетели кодировки баз

Непрочитанное сообщение -=Ded=- » 2008-01-13 14:31:10

8 часов мучаюсь и ни как не могу вернуть кодировки двум базам :(
одна была utf-8, вторая - cp-1251
небольшая предыстория...
никак не устанавливалась одна cms пока в мускуле не прописал принудительно

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

[client]
#password	= your_password
port		= 3306
socket		= /tmp/mysql.sock
[b]default-character-set=cp1251
character-sets-dir=/usr/local/share/mysql/charsets/[/b]
и

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

[mysqld]
port		= 3306
socket		= /tmp/mysql.sock
[b]character-sets-dir=/usr/local/share/mysql/charsets/
default-character-set=cp1251
skip-character-set-client-handshake[/b]
все базы работают из под рута,
mysql-server-4.1.22
mysql-client-4.1.22 (а в phpinfo пишет Client API version - 3.23.49)
мускуль из портов, пхп и апач из бинарников.

вообщем поменял из phpMyAdmin на те что должны быть, а эффекта 0,
как были "???" , так и остались,
третья база - все в порядке.
что делать даже не знаю, уже и закоментировал в конфиге все, что добавлял, но толку никакого.

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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: слетели кодировки баз

Непрочитанное сообщение Alex Keda » 2008-01-13 18:30:31

апач перезапустит?
Убей их всех! Бог потом рассортирует...


kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: слетели кодировки баз

Непрочитанное сообщение kmb » 2008-01-14 9:15:49

посмотри в гугле, пару раз возникали такие проблемы, в настройках мускула нужно было что-то прописать связанное с кодировками, щас не вспомню...
truth is out there...

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

Re: слетели кодировки баз

Непрочитанное сообщение zg » 2008-01-14 13:50:15

-=Ded=- писал(а):вообщем поменял из phpMyAdmin на те что должны быть, а эффекта 0,
это ты как :shock: ? там можно менять кодировку только на соединение для PMA :wink:
-=Ded=- писал(а):как были "???" , так и остались,
третья база - все в порядке.
что делать даже не знаю, уже и закоментировал в конфиге все, что добавлял, но толку никакого.
можно конфиг не трогать, так как если особой нужды нет, то проще выставить кодировку на соединение http://forum.fatal.ru/viewtopic.php?p=55811#p55811

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

<?
// Соединение с базой данных
mysql_connect('localhost', 'root') || die ('MySQL ERROR: Can\'t connect to localhost');

// Настройки соединения
my_query('USE zg');
my_query( 'set character_set_client=51' ); // windows-1251
my_query( 'set character_set_results=51' );
my_query( 'set character_set_connection=51' );
...
это и проще и надёжней :)

-=Ded=-
проходил мимо

Re: слетели кодировки баз

Непрочитанное сообщение -=Ded=- » 2008-01-14 14:45:52

это ты как :shock: ? там можно менять кодировку только на соединение для PMA :wink:
ну это я и имел ввиду, записи сами по себе как я предпологаю кодировку сменить не могут, они не трогались больше чем пол-года.
прописывать в конфиг пришлось из-за особенности мускуля при работе от рута, все кодировки игнорируются (не помню где это вычитал, возможно даже на этом форуме линк был)

попытался сделать как написано тут
http://forum.lissyara.su/viewtopic.php?p=22815#p22815
только с cp1251 , так дамп тоже получился с ????.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: слетели кодировки баз

Непрочитанное сообщение hizel » 2008-01-14 15:54:14

http://dev.mysql.com/doc/refman/5.0/en/ ... abase.html
поможет

например

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

ALTER DATABASE [db_name] CHARACTER SET UTF-8 
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

-=Ded=-
проходил мимо

Re: слетели кодировки баз

Непрочитанное сообщение -=Ded=- » 2008-01-14 18:30:43

hizel писал(а):http://dev.mysql.com/doc/refman/5.0/en/ ... abase.html
поможет

например

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

ALTER DATABASE [db_name] CHARACTER SET UTF-8 
тоже не помогло :(

зы все слетевшие в базах кодировки стали latin1_swedish_ci (1252).
прописал для всех таблиц 1251, но ведь данные там всеравно видны как "????" .
получается, что данные перезаписались в другой кодировке?

-=Ded=-
проходил мимо

Re: слетели кодировки баз

Непрочитанное сообщение -=Ded=- » 2008-01-14 19:33:03

вот что сейчас показывает phpMyAdmin
Серверные переменные и настройки
character set client utf8
(Глобальное значение) cp1251
character set connection utf8
(Глобальное значение) cp1251
character set database cp1251
character set results utf8
(Глобальное значение) cp1251
character set server cp1251
character set system utf8
character sets dir /usr/local/share/mysql/charsets/
collation connection utf8_general_ci
(Глобальное значение) cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci

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

Re: слетели кодировки баз

Непрочитанное сообщение zg » 2008-01-15 8:49:11

-=Ded=- писал(а):
hizel писал(а):http://dev.mysql.com/doc/refman/5.0/en/ ... abase.html
поможет

например

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

ALTER DATABASE [db_name] CHARACTER SET UTF-8 
тоже не помогло :(
это нужно выставлять при создании таблицы или базы, после создания можно запороть вообще все данные, то так как изначальная кодировка была неправильной, то перекодировка будет так же неправильной, то есть в таблице будут прописаны просто вопросики
-=Ded=- писал(а):прописал для всех таблиц 1251, но ведь данные там всеравно видны как "????" .
получается, что данные перезаписались в другой кодировке?
ну да :) бэкап есть?

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: слетели кодировки баз

Непрочитанное сообщение hizel » 2008-01-15 9:55:18

ну хз
можно iconv-ом бэкап отрихтовать :/
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: слетели кодировки баз

Непрочитанное сообщение Alex Keda » 2008-01-15 16:30:36

hizel писал(а):ну хз
можно iconv-ом бэкап отрихтовать :/
ох тяжело это =)
я форум для экскремента с 4.0 на 5.0 переносил - с третего раза вкурил где что писать и во что перекодировать...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
-=Ded=-
рядовой
Сообщения: 35
Зарегистрирован: 2008-01-14 20:11:31

Re: слетели кодировки баз

Непрочитанное сообщение -=Ded=- » 2008-01-25 4:40:10

в общем нифига не смог сделать, одно радует, что не особо ценная инфа, прибил все и на новую базу поставил.
спасибо всем за советы конечно, но судя по всему "ребенок был мертворожденным" :)

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: слетели кодировки баз

Непрочитанное сообщение voider » 2008-03-12 0:20:46

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

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

Re: слетели кодировки баз

Непрочитанное сообщение zg » 2008-03-12 8:18:07

voider писал(а):значит проблема не решена))) какую тогда лучше кодировку юзать ,чтоб проблем не было? и ваще чтоб раз и навсегда забыть про проблемы отображения..
чтоб проблем с кодировками не было, надо:
1. mysql-4.1.11 и выше
2. указывать кодировку на соединение
3. указывать кодировку на базу данных
4. указывать кодировку на таблицу
5. указывать кодировку на результат

только в этом случае независимо от настроек сервера будет всегда гарантированный результат.

я юзаю windwos-1251 как под никсом, так и под виндой, если из шела, то просто выставляю кодировку на соединение и результат KOI8-R, проблем не было.

Аватара пользователя
serge
майор
Сообщения: 2133
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Re: слетели кодировки баз

Непрочитанное сообщение serge » 2008-03-12 11:45:29

+1
З.Ы. Часть установок причем лучше/проще задать через конфиги сервера MySQL. Т.е. чтобы независимо от уровня знаний клиента это могло правильно работать. Вообще очень частый вопрос с кодировками.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: слетели кодировки баз

Непрочитанное сообщение hizel » 2008-03-12 12:05:24

cp1251 - тяжкое наследие php
utf-8 более универсально
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: слетели кодировки баз

Непрочитанное сообщение voider » 2008-03-14 23:57:37

hizel писал(а):cp1251 - тяжкое наследие php
utf-8 более универсально
в чем универсальность?

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: слетели кодировки баз

Непрочитанное сообщение voider » 2008-03-14 23:59:55

zg писал(а):
voider писал(а):значит проблема не решена))) какую тогда лучше кодировку юзать ,чтоб проблем не было? и ваще чтоб раз и навсегда забыть про проблемы отображения..
чтоб проблем с кодировками не было, надо:
1. mysql-4.1.11 и выше
2. указывать кодировку на соединение
3. указывать кодировку на базу данных
4. указывать кодировку на таблицу
5. указывать кодировку на результат

только в этом случае независимо от настроек сервера будет всегда гарантированный результат.

я юзаю windwos-1251 как под никсом, так и под виндой, если из шела, то просто выставляю кодировку на соединение и результат KOI8-R, проблем не было.
а примеры есть?

а если я ставлю готовую CMS мне надо обязательно найти конфиг где кодировки к базам задаются? а если он закодирован ioncube тогда как?

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

Re: слетели кодировки баз

Непрочитанное сообщение zg » 2008-03-15 5:39:09

При создании таблицы указываешь дефолтную кодировку

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

CREATE TABLE `c_razdely_info` (
  `id` varchar(60) NOT NULL default '',
  `name` varchar(60) NOT NULL default '',
  `type` varchar(60) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
из пхп юзается так

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

// Соединение с базой данных
@mysql_connect('localhost', 'root') || die('Can\'t connect to database');

// Настройки соединения
my_query('USE `dbname`');
my_query( 'set character_set_client=51' );
my_query( 'set character_set_results=51' );
my_query( 'set character_set_connection=51' );
51 - это cp1251

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: слетели кодировки баз

Непрочитанное сообщение voider » 2008-03-16 3:27:59

ok буду знать спасибо :)