MAMP MySQL не распознает значения my.cnf в OSX - PullRequest
3 голосов
/ 11 января 2012

Попытка работать в UTF8 постоянно и не может заставить MAMP установить MySQL для распознавания значений my.cnf.

MAMP Версия 2.0.5 (2.0.5)

MySQL 5.5.9

my.cnf file:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
collation_server=utf8_general_ci
character_set_server=utf8
init-connect='SET NAMES utf8'

Расположение файла:

/ Applications / MAMP / Library / Conf /

Переменные MySQL при запуске:

mysql> show variables where variable_name LIKE '%char%' OR variable_name LIKE '%colla%';
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | utf8                                       |
| character_set_connection | utf8                                       |
| character_set_database   | latin1                                     |
| character_set_filesystem | binary                                     |
| character_set_results    | utf8                                       |
| character_set_server     | latin1                                     |
| character_set_system     | utf8                                       |
| character_sets_dir       | /Applications/MAMP/Library/share/charsets/ |
| collation_connection     | utf8_general_ci                            |
| collation_database       | latin1_swedish_ci                          |
| collation_server         | latin1_swedish_ci                          |
+--------------------------+--------------------------------------------+

Переключение между различными базами данных приведет к получению обоих значений _database в utf8, но я не могу получить оба параметра _server для отражения utf8 / utf8_unicode_ci:

use tsdb;

+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | utf8                                       |
| character_set_connection | utf8                                       |
| character_set_database   | utf8                                       |
| character_set_filesystem | binary                                     |
| character_set_results    | utf8                                       |
| character_set_server     | latin1                                     |
| character_set_system     | utf8                                       |
| character_sets_dir       | /Applications/MAMP/Library/share/charsets/ |
| collation_connection     | utf8_general_ci                            |
| collation_database       | utf8_general_ci                            |
| collation_server         | latin1_swedish_ci                          |
+--------------------------+--------------------------------------------+

Попробовал

set global character_set_server = utf8;

и т. Д., Но перезапуск не потребовался.

Я впервые возился с my.cnf, так что я уверен, что пропускаю что-то простое.В my.cnf отсутствует информация, неправильный синтаксис?Или важен порядок?

Спасибо.

1 Ответ

8 голосов
/ 14 января 2012

Включено skip-character-set-client-handshake в группу [mysqld] файла my.cnf, и все выглядит правильно настроенным, UTF8 прямо.Я до сих пор не уверен, почему default-character-set=utf8 в группе [client] не взяли здесь, но я новичок, так что, надеюсь, кто-то сможет пролить свет там.Вы должны создать my.cnf в Applications / MAMP / conf и IN MAMP Pro, перейдите в File> Edit Template> MySQL my.cnf, чтобы внести изменения.

my.cnf:

# The MySQL server
[mysqld]
skip-character-set-client-handshake
collation_server=utf8_unicode_ci
character_set_server=utf8

Результаты:

mysql> SHOW VARIABLES WHERE variable_name LIKE '%char%' OR variable_name LIKE '%colla%';
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | utf8                                       |
| character_set_connection | utf8                                       |
| character_set_database   | utf8                                       |
| character_set_filesystem | binary                                     |
| character_set_results    | utf8                                       |
| character_set_server     | utf8                                       |
| character_set_system     | utf8                                       |
| character_sets_dir       | /Applications/MAMP/Library/share/charsets/ |
| collation_connection     | utf8_unicode_ci                            |
| collation_database       | utf8_unicode_ci                            |
| collation_server         | utf8_unicode_ci                            |
+--------------------------+--------------------------------------------+

Это также решило, почему переменные mysqladmin отличались от переменных mysql при использовании SHOW VARIABLES для каждого.

Решение, упомянутое в комментариях к руководству MySQL здесь .

...