首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL 5.7.7排序规则“hebrew_general_ci”对字符集“utf8”无效

MySQL 5.7.7排序规则“hebrew_general_ci”对字符集“utf8”无效
EN

Stack Overflow用户
提问于 2015-05-04 14:26:15
回答 2查看 487关注 0票数 2

问题摘要:无法使用以下变量打开MySQL 5.7.7:

代码语言:javascript
复制
character_set_client    hebrew
character_set_connection    hebrew
character_set_database  hebrew
character_set_filesystem    hebrew
character_set_results   hebrew
character_set_server    hebrew
character_set_system    hebrew
character_sets_dir  C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\

MySQL5.7.7所写的内容:“hebrew_general_ci”对字符集“utf8”无效

我能得到什么:

代码语言:javascript
复制
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  C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\

软件: MySQL 5.7.7

操作系统: WIN 7 64位

我做了什么: 1.将C:\ProgramData\MySQL\MySQL服务器5.7\My.ini配置文件中的所有数据更改为:

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

[mysql]

default-character-set=hebrew

[mysqld]

init_connect='SET collation_connection = hebrew_general_ci'
character-set-server = hebrew
collation-server = hebrew_general_ci
init-connect='SET NAMES hebrew'
init_connect='SET collation_connection = hebrew_general_ci' 

2.使用:从cmd运行服务器

代码语言:javascript
复制
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"  

3.从CMD运行服务器时得到了错误消息

代码语言:javascript
复制
MySQL 5.7.7 collation 'hebrew_general_ci' is not valid for character set 'utf8'

**4.主要问题是配置没有发生任何变化**

EN

回答 2

Stack Overflow用户

发布于 2015-05-04 17:02:22

HEX for Alef in CHARACTER SET hebrewF0;在utf8中是D790。检查您的应用程序语言中的十六进制,看看您有哪些。然后对SET NAMES进行相应的hebrewutf8操作。

代码语言:javascript
复制
mysql> SET NAMES hebrew;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | hebrew                                        |
| character_set_connection | hebrew                                        |
| character_set_database   | latin1                                        |
| character_set_filesystem | binary                                        |
| character_set_results    | hebrew                                        |
| character_set_server     | utf8                                          |
| character_set_system     | utf8                                          |
| character_sets_dir       | c:\wamp\bin\mysql\mysql5.6.12\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set (0.00 sec)

注意SET NAMES如何只修改其中的3个条目。修改其他任何一个都是危险的。建议你不要改变其他人。

SET NAMES向mysql声明了客户端的编码内容。表中的编码可能有所不同。特别是,由于您似乎想要hebrew_general_ci,获得它的唯一方法(或等效的方法,因为似乎没有utf8_hebrew_ci)是将您的列声明为CHARACTER SET hebrew COLLATION hebrew_general_ci。请记住,此设置与客户机中的编码无关;如果需要,SET NAMES将处理转换。

如果应用程序涉及网页,则元标记需要包含客户端的字符集。

当以root形式连接时,init_connect (在my.ini中)被跳过。因此,您可能会发现令人困惑的结果;避免成为根用户(或任何SUPER用户)。

这张校对图指定了在hebrew_general_ci中发生的事情;它可能不是什么特别的东西。我的观点是-- utf8utf8_general_ci可以给出相同的结果。

票数 1
EN

Stack Overflow用户

发布于 2015-05-05 05:48:35

感谢您的快速而翔实的回复。我的MySQL表读取应用程序是SAS9.4。实际上,我正在尝试通过SAS接口读取MySQL表到MySQL。

经过一番研究,我更改了我的SAS cfg文件(C:\Program \SASHome\SASFoundation\9.4\sasv9.cfg)

代码语言:javascript
复制
From: -config "C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg"
To: -config "C:\Program Files\SASHome\SASFoundation\9.4\nls\u8\sasv9.cfg"

现在,这两个应用程序都在“交谈”utf8。

解决了问题..。:)

非常感谢!!

丹尼尔

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

https://stackoverflow.com/questions/30032648

复制
相关文章

相似问题

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