在本问题中:Running/Starting MySQL without installation on Windows,我在评论中问了一个问题:
我在许多教程中看到,有一个名为my.ini
的配置文件。但是在Aj Tech Developer
的回答中,这个my.ini
文件是不需要的,为什么?
以下是我用于配置的my.ini
文件:
[client]
default-character-set=utf8
[mysqld]
port = 3306
max_connections=20
character-set-server=utf8
default-storage-engine=INNODB
**问题1:**看起来如果这个文件不存在,Mysql仍然可以正常启动。那么,这个文件是必要的吗?
**问题2:**当我尝试在运行的Mysql中创建数据库时,它说服务器端默认排序规则是utf8mb3_general_ci
,而在一些讨论(mysql - What's the difference between utf8_general_ci and utf8_unicode_ci? - Stack Overflow)中,建议首选utf8mb4_general_ci
。所以,我不确定他们的区别是什么。
谢谢
编辑
服务器端排序规则选项utf8mb3_general_ci
由我放在MySQL的<root>
文件夹中的my.ini
文件设置。如果我删除这个my.ini
文件,并重新启动MySQL。之后,我尝试创建一个新的数据库,我看到服务器端的默认排序规则现在是utf8mb4_0900_ai_ci
。
1条答案
按热度按时间jmo0nnb31#
无需创建
my.ini
或my.cnf
文件。每个服务器选项都有一个已编译的默认值。默认值为documented。utf8_general_ci
和utf8_unicode_ci
是排序规则,而不是编码。我建议使用MySQL 8.0默认值:字符集
utf8mb4
和排序规则utf8mb4_0900_ai_ci
,除非您有特定的不同需求(如果您不知道是否需要不同的东西,那么您几乎肯定不需要)。如果你想了解更多细节,请阅读MySQL 8.0手册中关于字符集和排序规则的章节:https://dev.mysql.com/doc/refman/8.0/en/charset.html
我也建议阅读维基百科上关于UTF-8的文章,以获得一般信息:https://en.wikipedia.org/wiki/UTF-8
Stack Overflow联合创始人Joel Spolsky的博客:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)