Изменить переменную сервера character_set_server

Я хочу изменить переменную сервера mysql character_set_server на utf8. Я гуглил об этом, но не могу найти информацию, которую ищу, или инструкции не совпадают. Кажется, мне нужно отредактировать файл с именем my.cnf, но этот файл не существует в моей системе. Версия 5.1.36.


person grai    schedule 09.08.2011    source источник
comment
Просто примечание для будущих посетителей здесь: ОП принял ответ, который просто неверен (см. комментарии к нему, чтобы понять, почему). Вместо этого смотрите ответ с наибольшим количеством голосов. (Это не мой ответ, и я лично не заинтересован в этом вопросе, это просто социальная реклама).   -  person Ben Lee    schedule 15.11.2013


Ответы (3)


Запустите этот запрос:

set global character_set_server = utf8;

затем перезапустите mysql. вы можете увидеть список всех ваших переменных с помощью простого

show variables;
person Nicola Cossu    schedule 09.08.2011
comment
Это неправильно. Если вы запустите запрос и перезапустите MySQL, у вас будет точно такой же character_set_server, как и до того, как вы отправили запрос, который может быть или не быть utf8. Перезапуск mysql перезагружает конфигурацию с диска. - person Cosimo; 29.03.2012
comment
Похоже, вы не знаете основ MySQL. Поэтому, пожалуйста, хотя бы ПРОВЕРЬТЕ свой ответ, прежде чем публиковать его. - person Federico Razzoli; 07.01.2016
comment
для OP @grai, пожалуйста, удалите этот ответ как выбранный, потому что он ошибочный. - person serge; 09.10.2018

это первый результат из гугла

http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_character-set-server

есть два способа установить эту конфигурацию

  • через файл конфигурации (сервер набора символов), требуется перезагрузка
  • или через set global/session character_set_server, это не требует перезагрузки, НО если ваша база данных перезагрузится, она исчезнет, ​​тогда вам нужно будет установить это снова
person ajreal    schedule 09.08.2011
comment
спасибо за ваш ответ, но я не понимаю, почему отрицательный голос, этот документ не совсем ясен для неопытного человека, поэтому я решил задать вопрос здесь. - person grai; 09.08.2011
comment
но это первое из результатов Google :( вместо этого вы должны спросить об ошибке сервера здесь - person ajreal; 09.08.2011
comment
Вы конечно правы, но суть в том, что эта опция динамическая, но эту информацию должен задавать только сервер. Вы не должны устанавливать значение этой переменной вручную. dev.mysql.com/doc/refman/5.6/ ru/server-system-variables.html - person Federico Razzoli; 07.01.2016
comment
@FedericoRazzoli - я предоставляю оба способа и объясняю последствия использования ручной настройки - person ajreal; 07.01.2016

Расположение файлов my.ini и my.cnf:

http://dev.mysql.com/doc/refman/5.0/en/option-files.html

Что касается вопроса о том, следует ли вам использовать файлы my.ini или my.cnf, в приведенной выше документации говорится, что

Системы Windows используют как my.ini, так и my.cnf,

Системы Linux, Unix, Mac OS X используют my.cnf.

person Paul Gobée    schedule 16.06.2013
comment
что означает, что Windows использует оба? у них есть приоритет, или он принимает случайное значение от одного из них? - person serge; 09.10.2018
comment
Давным-давно. Не могу вспомнить. Глядя на связанный ресурс — см. таблицу 4.1 — там написано %WINDIR%\my.ini, %WINDIR%\my.cnf C:\my.ini, C:\my.cnf . Я интерпретирую это как одно или другое. - person Paul Gobée; 10.10.2018
comment
если они оба, в первом (cnf) значение равно A, во втором (ini) — B, что мы должны ожидать от использования? - person serge; 11.10.2018