gpt4 book ai didi

mysql - MAMP MySQL 无法识别 OSX 中的 my.cnf 值

转载 作者:可可西里 更新时间:2023-11-01 07:50:06 26 4
gpt4 key购买 nike

尝试永久使用 UTF8,但无法让 MAMP 安装的 MySQL 识别 my.cnf 值。

马普版本 2.0.5 (2.0.5)

MySQL 5.5.9

我的.cnf文件:

[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 选项来反射(reflect) 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 中是否缺少信息,语法是否错误?还是顺序重要?

谢谢。

最佳答案

在 my.cnf 文件的 [mysqld] 组中包含 skip-character-set-client-handshake 并且一切似乎都正确配置,UTF8 直接通过。我仍然不确定为什么 [client] 组中的 default-character-set=utf8 没有带这里,但我是新手所以希望有人可以照亮那里。您必须在 Applications/MAMP/conf 和 IN MAMP Pro 中创建 my.cnf,您可以在文件 > 编辑模板 > MySQL my.cnf 下进行更改。

我的.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手册注释中提到的解决方法here .

关于mysql - MAMP MySQL 无法识别 OSX 中的 my.cnf 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com