mysql - 在 my.cnf 中将 MySQL 默认字符集更改为 UTF-8?

标签 mysql character-encoding

目前我们在 PHP 中使用以下命令将字符集设置为 UTF-8在我们的应用程序中。

由于这有点开销,我们想将此设置为 MySQL 中的默认设置。我们可以在/etc/my.cnf 或其他位置执行此操作吗?

SET NAMES 'utf8'
SET CHARACTER SET utf8

我在/etc/my.cnf 中寻找了一个默认字符集,但那里没有关于字符集的内容。

此时,我执行以下操作将 MySQL 字符集和排序规则变量设置为 UTF-8:

skip-character-set-client-handshake
character_set_client=utf8
character_set_server=utf8

这是处理这个问题的正确方法吗?

最佳答案

要将默认设置为 UTF-8,您需要将以下内容添加到 my.cnf/my.ini

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4


[mysqld]
collation-server = utf8mb4_unicode_520_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4

如果您想更改现有数据库的字符集,请告诉我...您的问题没有直接指定,所以我不确定您是否想要这样做。

编辑:由于 utf8 只是 UTF-8 的子集,我在原始答案中将 utf8 替换为 utf8mb4。 MySQL 和 MariaDB 都调用 UTF-8 utf8mb4

关于mysql - 在 my.cnf 中将 MySQL 默认字符集更改为 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3513773/

相关文章:

c# - 我可以使用 Unicode 解码 HTTP 请求吗?

java - 如何将 UTF8 属性文件与 Vaadin Bean 验证结合使用

mysql - 大数据库上的快速mysql随机加权选择

MySQL:选择单词作为行,即使 som 在一个字段中分隔为 "new line"

php - 如何爆炸()值并将其保存在变量中?

mysql - 从 R 中的 MySQL 获取 UTF-8 文本返回 "????"

php - 修剪功能不起作用

mysql - 带有 MySQL 后端的 JPA2 : MyISAM or InnoDB

sql - 使用 SQL 查找订单数量超过 X 的客户总数

character-encoding - 英镑符号在商店中显示为未知字符