2015-05-04 43 views
2

問題摘要:的MySQL 5.7.7歸類「hebrew_general_ci」是無效字符集「utf-8」

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寫:不能與以下變量打開的MySQL 5.7.7 : 'hebrew_general_ci' 是無效字符集 'utf-8'

我會得到什麼:

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配置文件:

[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與:

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' 

** 4時得到了錯誤的信息。主要問題是沒有發生任何配置變化**

+0

嘗試僅保留'字符集服務器......'和'整理server..'並添加'init_connect ='SET collat​​ion_connection是= hebrew_general_ci,名字hebrew'' – Mihai

+0

另外補充或取消註釋這些行'character_set_client = hebrew character_set_connection = hebrew character_set_results = hebrew '並重新啓動 – Mihai

回答

1

Alef在CHARACTER SET hebrewHEXF0;在utf8中,它是D790。檢查你的應用程序語言中的十六進制,看看你有。然後相應地執行SET NAMEShebrewutf8

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用戶)。

This collation chart指定在hebrew_general_ci中發生了什麼;它可能沒有什麼特別的。我的觀點是 - utf8utf8_general_ci可能會給你相同的結果。

0

感謝您的快速和翔實的答覆。我的閱讀MySQL Tables的應用程序是SAS9.4。實際上,我試圖通過SAS \​​ ACCESS接口讀取MySQL表。

了一些研究之後,我改變了我的SAS CFG文件(C:\ Program Files文件\ SASHome \ SASFoundation \ 9.4 \ sasv9.cfg)

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。

解決了這個問題... :)

非常感謝!下的[mysqld]

丹尼爾

相關問題