Дефолтная кодировка MYSQl 5

Discussion in 'ПО для Web разработчика' started by k1b0rg, 11 Nov 2006.

  1. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    Помогите нубу изменить дефолтную кодировку MYSQl 5. ось - Виндоус.

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

    africanec Banned

    Joined:
    11 Sep 2005
    Messages:
    222
    Likes Received:
    14
    Reputations:
    -3
    Если Вам необходимо хранить в базе данных строки в кодировке, отличной от английской, то придется немного разобраться с кодировками - дело достаточно тонкое и не совсем тривиальное.

    Итак, по умолчанию для всех обьектов базы устанавливается кодировка 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;
    ----------------------------
    это надо или я нетак понял?
     
  3. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    это мы устанавливаем кодировку для определенной базы. А мне нужна чтобы она сразу уже была как допустим cp1251.
     
  4. Tem

    Tem -

    Joined:
    5 Oct 2005
    Messages:
    557
    Likes Received:
    157
    Reputations:
    179
    может через пхпмайадмин настроеш ?
     
  5. FQziT

    FQziT Elder - Старейшина

    Joined:
    3 Nov 2005
    Messages:
    543
    Likes Received:
    156
    Reputations:
    206
    Мда.. В файле my.cnf найди
    Code:
    [mysqld]
    # Кодировка баз данных по умолчанию.
    default-character-set = cp1251
    И меняй на какую нужно.. =)

    ЗЫ: Да, чтоб не искал, файл этот лежит в дире /usr/local/mysql/
     
    #5 FQziT, 11 Nov 2006
    Last edited: 11 Nov 2006
  6. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    Не думаю что пхпмайдмин такое умеет.

    Он только в линуксе
     
  7. FQziT

    FQziT Elder - Старейшина

    Joined:
    3 Nov 2005
    Messages:
    543
    Likes Received:
    156
    Reputations:
    206
    Нет
     
    #7 FQziT, 11 Nov 2006
    Last edited: 11 Nov 2006
  8. africanec

    africanec Banned

    Joined:
    11 Sep 2005
    Messages:
    222
    Likes Received:
    14
    Reputations:
    -3
    да в винде my.ini
     
  9. FQziT

    FQziT Elder - Старейшина

    Joined:
    3 Nov 2005
    Messages:
    543
    Likes Received:
    156
    Reputations:
    206
    Не суть важно.. my.ini и my.cnf это одно и тоже. В денвере, например, будет my.cnf. Если ставить всё по отдельности апач+пхп+майскл и тд, то тогда my.ini вроде бы. Киборг не сказал что там у него стоит =)
    В любом случае править нужно там.
     
  10. africanec

    africanec Banned

    Joined:
    11 Sep 2005
    Messages:
    222
    Likes Received:
    14
    Reputations:
    -3
    да я в асе ему писал я через тулзу в конфигах шарю и все там меняю
    он писал что просто мускл 5 отдельно без денверов всяких(или просто я так подумал)
    у меня менялась кодировка
     
  11. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    А слабо в меню Start|Пуск глянуть? Там мастер настройки есть!
     
  12. r0

    r0 Elder - Старейшина

    Joined:
    17 Jul 2005
    Messages:
    450
    Likes Received:
    149
    Reputations:
    147
    или gui'шкой типа MySQL admin. (3я стопка, вкладка "дополнительно")