MySQL 5.7.7排序规则';希伯来语"通用"词&"x27;对于字符集';无效;utf8';
问题摘要:无法使用以下变量打开MySQL 5.7.7:MySQL 5.7.7排序规则';希伯来语"通用"词&"x27;对于字符集';无效;utf8';,mysql,character-encoding,collation,hebrew,Mysql,Character Encoding,Collation,Hebrew,问题摘要:无法使用以下变量打开MySQL 5.7.7: 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 hebr
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\
MYSQL 5.7.7所写的内容:“希伯来文\u通用\u ci”对字符集“utf8”无效
我能得到什么:
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
操作系统:WIN7 64位
我做了什么:
1。将C:\ProgramData\MySQL\MySQL Server 5.7\My.ini配置文件中的所有数据更改为:
[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'
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"
2。使用以下命令从cmd运行服务器:
[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'
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"
3。从CMD运行服务器时收到错误消息
MySQL 5.7.7 collation 'hebrew_general_ci' is not valid for character set 'utf8'
**四,。主要问题是没有发生任何配置更改**希伯来语字符集中Alef的
十六进制是F0
;在utf8中,它是D790
。检查应用程序语言中的十六进制,看看您有哪些。然后相应地将名称设置为希伯来语或utf8
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 name
向mysql声明客户端中的编码。表中的编码可以不同。特别是,由于您似乎想要希伯来语\u常规\u ci
,因此获得它的唯一方法(或等效方法,因为似乎没有utf8\u希伯来语\u ci)是将列声明为字符集希伯来语排序规则希伯来语\u常规\u ci
。请记住,此设置独立于客户端中的enocoding<代码>设置名称
根据需要处理转换
如果应用程序涉及一个网页,meta标记需要包含客户端的字符集
当以root
身份连接时,将跳过init_connect
(在my.ini
中)。因此,您可能会发现令人困惑的结果;避免成为root用户(或任何SUPER
用户)
指定在希伯来语\u general\u ci中发生的情况;这可能没什么特别的。我的观点是--utf8
和utf8\u general\u ci
可能会给你相同的结果。谢谢你快速而翔实的回复。我用于读取MySQL表的应用程序是SAS9.4。实际上,我正在尝试通过MySQL的SAS\ACCESS接口读取MySQL表
经过一番研究,我已经更改了SAS cfg文件(C:\Program Files\SASHome\SASFoundation\9.4\sasv9.cfg)
现在,两个应用程序都“对话”utf8
这解决了问题……:)
非常感谢
Daniel在[mysqld]下尝试,只保留字符集服务器…
和排序服务器…
并添加init\u connect='set collation\u connection=hebrew\u general\u ci,命名希伯来语“
还添加或取消注释这些行character\u set\u client=希伯来语character\u set\u connection=希伯来语character\u set\u results=希伯来语
并重新启动