首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将character_set_database和character_set_server设置为utf8mb4

无法将character_set_database和character_set_server设置为utf8mb4
EN

Database Administration用户
提问于 2016-01-04 15:58:08
回答 1查看 2.7K关注 0票数 1

我正在尝试将我的MySQL服务器及其现有模式转换为utf8mb4字符集。

初步说明:

  • 我使用的是Xampp ( MySQL 5.6.24)。默认选项按给定顺序从下列文件读取:C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf C:\xampp\mysql\my.ini C:\xampp\mysql\my.cnf,目前不存在。
  • 字符集相关变量在创建任何选项文件之前如下所示: mysql>显示变量,其中Variable_name类似于“字符\set\%”或Variable_name类似于“排序规则%”;+--------------------------+-------------------+ _ Variable_name _ +--------------------------+-------------------+ _cp850,character_set_connection,cp850,数据库:+--------------------------+-------------------+,latin1_swedish_ci,collation_server,latin1_swedish_ci,latin1_swedish_ci

现在,我将一个模式转换为utf8mb4 (一个ALTER SCHEMA和多个ALTER TABLEs),一切都很好。然后创建以下C:\xampp\mysql\my.cnf文件:

代码语言:javascript
复制
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

下一步,我使用xampp控制面板停止mysql,再次启动它,然后检查字符集相关变量:

代码语言:javascript
复制
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | latin1             |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | latin1             |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_general_ci |
| collation_database       | latin1_swedish_ci  |
| collation_server         | latin1_swedish_ci  |
+--------------------------+--------------------+

根据我所跟随的向导character_set_databasecharacter_set_server应该设置为utf8mb4,collation_databasecollation_server应该设置为utf8mb4_unicode_ci。我遗漏了什么?

我已经尝试将我的my.cnf选项移到MySQL读取的路径中的其他路径(参见上文),但是没有什么变化。

EN

回答 1

Database Administration用户

发布于 2016-01-04 18:10:48

好吧,我找到问题的原因了。如果mysqld是作为服务安装的,它将可执行文件的路径设置为:

代码语言:javascript
复制
C:\xampp\mysql\bin\mysqld.exe --defaults-file=c:\xampp\mysql\bin\my.ini mysql

(当然,如果XAMPP安装在C:\xampp__中)

mysqld使用--defaults-file参数启动时,它会读取指定的选项文件。由于这条路径没有出现在mysql --help的S选项文件列表中,我不知道它的存在。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/125151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档