2014-10-28 71 views
0

我有一個網站,當你複製從Microsoft Word等具體應用,爲在我的網站上搜索框中輸入一些字符(*,' " - _)我意識到,它返回此錯誤:設置CentOS 6的mysql的字符集爲UTF8

ERROR org.hibernate.util.JDBCExceptionReporter - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like' 

所以我去看看我的數據庫,我想看看,如果數據庫中使用UTF-8。

mysql> SHOW VARIABLES LIKE '%character%'; 
+--------------------------+----------------------------+ 
| Variable_name   | Value      | 
+--------------------------+----------------------------+ 
| character_set_client  | utf8      | 
| character_set_connection | utf8      | 
| character_set_database | latin1      | 
| character_set_filesystem | binary      | 
| character_set_results | utf8      | 
| character_set_server  | latin1      | 
| character_set_system  | utf8      | 
| character_sets_dir  | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+ 
8 rows in set (0.00 sec) 

mysql> SHOW VARIABLES LIKE '%collation%'; 
+----------------------+-------------------+ 
| Variable_name  | Value    | 
+----------------------+-------------------+ 
| collation_connection | utf8_general_ci | 
| collation_database | latin1_swedish_ci | 
| collation_server  | latin1_swedish_ci | 
+----------------------+-------------------+ 

正如你所看到的,數據庫使用latin1,我想將它設置爲使用utf8。所以,首先我是一個Centos 6.2服務器和文件my.cnf文件駐留在/etc/my.cnf和文件是[mysqld]下如下:

[mysqld] 
local-infile=0 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 
init_connect ='SET NAMES utf8' 
character_set_server = utf8 
collation_server = utf8_general_ci 

PS我並不擔心[client]節,因爲它表明,它使用utf8的值爲character_set_client

問題:

雖然我試圖將服務器設置在我my.cnf文件(並關閉該文件,關閉我的Tomcat和重新啓動我的Tomcat的)。沒有什麼改變。當我運行我顯示的第一個查詢時,它仍然顯示character_set_server仍在使用latin1

回答

0

雖然重新啓動我的TOMCAT沒有任何影響,但實際上我必須重新啓動mySql才能進行更改地點。所以你必須先停止主服務器(在本例中爲Stop TOMCAT),然後重新啓動mySql,然後再重新啓動Start TOMCAT。之後,在你mySql如果鍵入:show VARIABLES like %character%;你應該看到你的數據庫的數據類型與utf-8,如果你鍵入:show VARIABLES like %collation%你也應該看到,這應該是utf-8_general_ci數據庫校驗數據類型。