MySQL skip-character-set-client-handshake導致的一個字符集問題
今天幫同事處理一個棘手的事情,問題是這樣的:
無論在客戶機用哪個版本的mysql客戶端連接服務器,發(fā)現(xiàn)只要服務器端設置了
之后,
就始終都是和服務器端保持一致了,即便在mysql客戶端加上選項
也不行,除非連接進去后,再手工執(zhí)行命令
set names latin1
,才會將client、connection、results的字符集改過來。
經(jīng)過仔細對比,最終發(fā)現(xiàn)讓我踩坑的地方是,服務器端設置了另一個選項:
skip-character-set-client-handshake
文檔上關于這個選項的解釋是這樣的:
--character-set-client-handshake
Don't ignore character set information sent by the client. To ignore client information and use the default server character set, use --skip-character-set-client-handshake; this makes MySQL behave like MySQL 4.0
這么看來,其實也是有好處的。比如啟用 skip-character-set-client-handshake 選項后,就可以避免客戶端程序誤操作,使用其他字符集連接進來并寫入數(shù)據(jù),從而引發(fā)亂碼問題。
相關文章
使用ORM新增數(shù)據(jù)在Mysql中的操作步驟
這篇文章主要介紹了使用ORM新增數(shù)據(jù)在Mysql中,但是在這需要注意需要大家新建ORM模型,具體搭建步驟及詳細過程跟隨小編一起看看吧2021-07-07
mysql5.6及以下版本如何查詢數(shù)據(jù)庫里的json
MySQL里面保存數(shù)據(jù)有時候會把一些雜亂且不常用的時候丟進一個json字段里面,那么如何查詢數(shù)據(jù)庫里的json呢以及mysql存儲json注意那些格式呢?接下來通過本文給大家詳細介紹,需要的朋友參考下2017-03-03
MySQL的Replace into 與Insert into on duplicate key update真正的不同
今天聽同事介紹oracle到mysql的數(shù)據(jù)migration,他用了Insert into ..... on duplicate key update ...,我當時就想怎么不用Replace呢,于是回來就仔細查了下,它們果然還是有區(qū)別的2014-02-02
MySQL數(shù)據(jù)庫恢復(使用mysqlbinlog命令)
binlog是通過記錄二進制文件方式來備份數(shù)據(jù),然后在從二進制文件將數(shù)據(jù)恢復到某一時段或某一操作點。2011-08-08
MySQL Innodb 存儲結構 和 存儲Null值 用法詳解
這篇文章主要介紹了MySQL Innodb 存儲結構 和 存儲Null值 用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07

