Здравствуйте!
Биллинг 5.2.1-005, все работает, базы растут нагрузка на комп тоже и в связи с этим решил вынести mysql на отдельный комп.
Возник вопрос.
В настоящий момент кодировка базы mysql стоит latin1, а данные хранятся в utf8, пытался переконвертить и ничего не получается.
Может оставить как есть?
Насколько это повлияет на производительность?
Спасибо!
Кодировка mysql
Re: Кодировка mysql
1) если сервер нормально отрабатывает на данной нагрузке, то думаю можно и оставить как есть. "Работает - не трогай".Cyber писал(а):Здравствуйте!
Биллинг 5.2.1-005, все работает, базы растут нагрузка на комп тоже и в связи с этим решил вынести mysql на отдельный комп.
Возник вопрос.
В настоящий момент кодировка базы mysql стоит latin1, а данные хранятся в utf8, пытался переконвертить и ничего не получается.
Может оставить как есть?
Насколько это повлияет на производительность?
Спасибо!
2) Как я понял ядо вы собираетесь оставлять на одном сервере, а базу переносить на другой. Если и производительность увеличится, то незначительно, т.к. данные уже будет гонятся по сети.
3) Не совсем понятно по поводу текущей кодировки, если возможно выведите результат SQL запроса:
use <UTM_db>;
SHOW variables like 'char%';
ЗЫ все ИМХО
Ну системная кодировка utf8, а в базе они сохраняются в latin1
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
Так вот, если все-таки решили переводить на utf8, то нужно сделать следующее:Cyber писал(а):Ну системная кодировка utf8, а в базе они сохраняются в latin1
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
1) сделать дамп базы командой mysqldump (параметры точно не помню, man и google вам в помощь).
2) файл с дампом перекодировать из latin1 в utf8 командой iconv:
#iconv -f <откуда> -t <куда> <старый дамп базы> > <новый дамп базы>
откуда, куда - кодировки, в вашем случае скорее всего будет latin1 и utf8 (либо utf-8, точно не помню как пишется) соответственно. Например:
#iconv -f latin1 -t utf8 /home/user/utm5.sql > /home/user/utm5_new.sql
3) новый дамп залить в новую базу, где предварительно установлена кодировка utf8, то можно проверить: show variables like 'char%'. Вывод должен показать character_set_database: utf8.
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
имхо, вполне достаточно сделать:
mysqldump --default-character-set=latin1 UTM5 > utm5.orig
sed s/CHARSET=latin1/CHARSET=utf8/g utm5.orig > utm5.utf8
отредактировать этот самый utm5.utf8 на тему "SET NAMES latin1", естесна заменить на SET NAMES utf8
Залить в мускул предварительно глянув status, там будут показаны текущие кодировки.
Если версия биллинга ниже 5.2.1-005, то имеет смысл в конфиг мускула засунуть init-connect="SET NAMES utf8;"
mysqldump --default-character-set=latin1 UTM5 > utm5.orig
sed s/CHARSET=latin1/CHARSET=utf8/g utm5.orig > utm5.utf8
отредактировать этот самый utm5.utf8 на тему "SET NAMES latin1", естесна заменить на SET NAMES utf8
Залить в мускул предварительно глянув status, там будут показаны текущие кодировки.
Если версия биллинга ниже 5.2.1-005, то имеет смысл в конфиг мускула засунуть init-connect="SET NAMES utf8;"