Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   ПО для Web разработчика (https://forum.antichat.xyz/forumdisplay.php?f=92)
-   -   Дефолтная кодировка MYSQl 5 (https://forum.antichat.xyz/showthread.php?t=26977)

k1b0rg 11.11.2006 01:48

Дефолтная кодировка MYSQl 5
 
Помогите нубу изменить дефолтную кодировку MYSQl 5. ось - Виндоус.

Задача состоит в том, чтобы изменить кодировку хранения инфы в БД, а не выдачи ее. Т.е. вставлять в запросы всякие set names и collate не предлогать.

africanec 11.11.2006 01:56

Если Вам необходимо хранить в базе данных строки в кодировке, отличной от английской, то придется немного разобраться с кодировками - дело достаточно тонкое и не совсем тривиальное.

Итак, по умолчанию для всех обьектов базы устанавливается кодировка latin1, и если в поле с такой кодировкой запихнуть русские данные, то вместо символов Вы будете видеть знаки вопроса. Для избежания данной проблемы достаточно установить при создании базы нужную Вам кодировку:

CREATE DATABASE yourbase CHARACTER SET ‘cp1251′

в этом случае все поля по умолчанию будут иметь именну эту кодировку, если при создании базы или поля не указать иную. Тоесть, при создании базы с нуля достаточно укзать ее кодировку и все будет нормально.
Но если Вы модифицируете уже созданную ранее базу, то изменение ее кодировки не приведет к изменению кодировок уже созданных полей - их придется менять вручную, посредством следующей комманды:

ALTER TABLE students CHANGE name name varchar(100) CHARACTER SET ‘cp1251′

Типы полей надо оставить прежними, нужно только изменить кодировку(CHARACTER SET).

Для корректной работы с кодировками осталась одна вещь - после установления соединения необходимо указать требуемую кодировку с помощью запроса:

SET NAMES cp1251;

Кстати, полный список кодировок, которые поддерживает Ваш сервер, можно получить с помощью комманды

SHOW CHARACTER SET;
----------------------------
это надо или я нетак понял?

k1b0rg 11.11.2006 02:04

это мы устанавливаем кодировку для определенной базы. А мне нужна чтобы она сразу уже была как допустим cp1251.

Tem 11.11.2006 02:48

может через пхпмайадмин настроеш ?

FQziT 11.11.2006 02:50

Мда.. В файле my.cnf найди
Код:

[mysqld]
# Кодировка баз данных по умолчанию.
default-character-set = cp1251

И меняй на какую нужно.. =)

ЗЫ: Да, чтоб не искал, файл этот лежит в дире /usr/local/mysql/

k1b0rg 11.11.2006 03:10

Цитата:

может через пхпмайадмин настроеш ?
Не думаю что пхпмайдмин такое умеет.

Цитата:

В файле my.cnf найди
Он только в линуксе

FQziT 11.11.2006 03:12

Цитата:

Сообщение от k1b0rg
Он только в линуксе

Нет

africanec 11.11.2006 04:46

да в винде my.ini

FQziT 11.11.2006 05:11

Не суть важно.. my.ini и my.cnf это одно и тоже. В денвере, например, будет my.cnf. Если ставить всё по отдельности апач+пхп+майскл и тд, то тогда my.ini вроде бы. Киборг не сказал что там у него стоит =)
В любом случае править нужно там.

africanec 11.11.2006 05:27

да я в асе ему писал я через тулзу в конфигах шарю и все там меняю
он писал что просто мускл 5 отдельно без денверов всяких(или просто я так подумал)
у меня менялась кодировка


Время: 12:45