Показать полную графическую версию : Кодировка MySQL3.2 and FreeBSD
Bubble2007
05-03-2007, 17:01
У меня возник такого плана вопрос :
"Как поменять стандартную (Latin) кодировку сервера MySQL "3.2" на кодировку ср1251. Проблема состоит в том что
1. Сервер под FreeBSD
2. Файл my.nf* я не нашел на сервере.
PS: Поском пользовался вразумительных ответов я ненашел :(.
Единственное, что я знаю - http://phpclub.ru/faq/wakka.php?wakka=Mysql41Rus&v=eum. Но это про 4.1
ruslandh
05-03-2007, 22:52
http://downloads.mysql.com/docs/refman-4.0-ru.html.tar.gz
refman-4.0-ru.html-chapter/mysql-database-administration.html#character-sets
4.6.1. Набор символов, применяющийся для записи данных и сортировки
При запуске сервера можно изменить набор символов при помощи параметра --default-character-set. Выбрать доступные наборы символов можно при помощи параметров --with-charset=charset и --with-extra-charsets= список-кодировок | complex | all, и файлов наборов символов, перечисленных в SHAREDIR/charsets/Index. See Раздел 2.3.3, «Типичные опции configure ».
При смене набора символов во время работы MySQL (что может одновременно изменить и порядок сортировки) необходимо запустить команду myisamchk -r -q --set-character-set=charset для всех таблиц. В противном случае индексы могут быть созданы в неправильном порядке.
......................
2.3.3. Типичные опции configure
По умолчанию в MySQL используется кодировка ISO-8859-1 (Latin1). Для изменения кодировки, принятой по умолчанию, следует применить опцию --with-charset:
shell> ./configure --with-charset=CHARSET
CHARSET может принимать одно из следующих значений: big5, cp1251, cp1257, czech, danish, dec8, dos, euc_kr, gb2312, gbk, german1, hebrew, hp8, hungarian, koi8_ru, koi8_ukr, cp1251, latin2, sjis, swe7, tis620, ujis, usa7 или win1251ukr (see Раздел 4.6.1, «Набор символов, применяющийся для записи данных и сортировки»). Если требуется преобразовывать символы между сервером и клиентом, следует рассмотреть команду SET CHARACTER SET (see Раздел 5.5.6, «Синтаксис команды SET»).
Предупреждение: если набор символов изменяется после создания таблиц, необходимо запустить myisamchk -r -q --set-characted-set=charset на каждой таблице. В противном случае индексы могут сортироваться неправильно (такое может случиться, если вы установите MySQL, создадите ряд таблиц, затем переконфигурируете MySQL с целью использования другого набора символов и заново установите MySQL).
С помощью опции --with-extra-charsets=LIST можно определить, какие дополнительные кодировки необходимо скомпилировать в данном сервере.
Bubble2007
06-03-2007, 14:01
myisamchk -r -q --set-character-set=charset -- I tak ponimay cho eto edinstvenniy sposop smenit' kodirovky vo vremay raboti MySql ?
ruslandh
06-03-2007, 21:13
Читайте документ - я не знаю :)
my.cnf - (лучше искать по "my.*") может и не быть. В этом случае можете сами его создать и вперед. Для того, чтобы менять кодировку на что-то надо, чтобы mysql был собран с соответствующей поддержкой. Вообще я не помню уже, как оно было в 3 ветке, но в 4-ой точно можно использовать при создании бд с любой из поддерживаемых сервером кодировок.
Bubble2007
12-03-2007, 12:58
хм .. пробывал не получается ... а какие настройки должны быть в my.cnf ..
Bubble2007
прикинься пхп-эшником и задай там вопрос - http://phpclub.ru/talk/forumdisplay.php?forumid=7
Bubble2007
13-03-2007, 10:58
Пасиба постараюсь прикинуться :)
Вот еще набрел на статейку Кодовая страница «CP 1251» или как я боролся с кодировкой в MySQL 4.1.x (http://www.nclug.ru/content.php?article.92)
Bubble2007
16-03-2007, 11:10
Все оказалось предельно просто
1. создать файл my.cnf
2. записать туда строку default-character-set=cp1251
3. подключить к серваку MySQL методом указания глобальной переменной:)
мож кому пригодится
большое пасиба за помощ и понимание
Barracuda
30-03-2007, 03:09
вообще у mysql есть стартовый скрипт и там, вроде как, есть такой параметр, как --character-set-server==
Во Фрях (те, что 5х и выше), можно воткнуть его в rc.conf под именем mysqld_args="--character-set-server=cp1251"
man mysqld(1):
...
--character-set-server=charset_name
Use charset_name as the default server character set. This option is
available as of MySQL 4.1.3. See Section 8.1, "The Character Set
Used for Data and Sorting".
...
--default-character-set=
Use charset_name as the default character set. This option is
deprecated in favor of --character-set-server as of MySQL 4.1.3. See
Section 8.1, "The Character Set Used for Data and Sorting".
...
Это для 4.1, но для 3.х что-то подобное тоже есть.
[mzd]
Статья так себе... Про права и кодировку говорится в доках. А вообще - надо движки делать толковые и понимать механизм работы. Ставим в движок (прога на перле, сайт) соответствующий SET NAMES и не имеем головной боли.
Не факт.
http://forum.oszone.net/thread-79784.html
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.