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