2013-12-13 16 views
0

我在MySQL中發現我擁有不同的全局和數據庫「character_set_client」變量。 show variables顯示在MySQL中更改數據庫變量「character_set_client」

character_set_client | utf8 

show global variables顯示

character_set_client | latin1 

我認爲第一個是數據庫的設置。我該如何改變它?當我做

set character_set_client='latin1' 

它只是改變會話。當我斷開連接並重新連接時,它將重新設置爲'utf8'。我怎樣才能改變它,使它保持在'latin1'?

回答

-1

如果要更改數據庫的默認(因此數據庫的所有用戶),你的數據庫管理員,你可以把它編譯成的mysqld編譯:

configure --with-charset=latin1 

或包括在命令行上時,您的服務器啓動/重新啓動:

mysqld --character-set-server=latin1 

this reference

如果你不想改變服務器的默認設置,但是你想改變連接時默認情況下,那麼你可以使用客戶端的命令行參數--default-character-set描述here

它們也可能是將您的設置應用到.my.cnf文件中的一種方式,但我不知道它是非正式的。

0

這個想法是強制服務器端的字符集,並告訴它跳過關於字符集的協商。 參見MySQL manual。 三個參數對於客戶端和服務器之間在這方面的正確操作至關重要。它們在.CNF文件的[mysqld]部分設置:

[mysqld] 
#...  
#UTF8 stuff 
skip-character-set-client-handshake 
collation-server=latin1_general_ci 
character-set-server=latin1 

方面說明,在當今這個時代,應該採用UTF8,這需要設置以下行:

collation-server=utf8_unicode_ci 
character-set-server=utf8