主頁 > 知識庫 > MySQL編碼不一致可能引起的一些問題

MySQL編碼不一致可能引起的一些問題

熱門標(biāo)簽:地圖標(biāo)注被騙三百怎么辦 房產(chǎn)智能外呼系統(tǒng)品牌 沃克斯電梯外呼線路圖 天智外呼系統(tǒng) 福州呼叫中心外呼系統(tǒng)哪家好 400電話鄭州申請 常州電銷外呼系統(tǒng)一般多少錢 北京人工外呼系統(tǒng)價錢 云南語音外呼系統(tǒng)平臺

存儲過程與編碼

MySQL 存儲過程中, 表和數(shù)據(jù)的編碼與數(shù)據(jù)庫和存儲過程默認(rèn)的編碼不同則可能出現(xiàn) sql 不會使用索引的情況, 因為 MySQL 會對條件列的數(shù)據(jù)做相應(yīng)的編碼轉(zhuǎn)換, 比如以下, 表數(shù)據(jù)為 latin1, MySQL 解析器會做一些轉(zhuǎn)換:

... WHERE namecolumn = NAME_CONST('in_namecolumn',_utf8'MP201022' COLLATE 'utf8_general_ci')

可以在存儲過程中進(jìn)行相應(yīng)的編碼轉(zhuǎn)換(通常修改 varchar/char 字段)使得可以正常使用索引, 更多見: mysql-slow-when-run-as-stored-proc

... WHERE namecolumn = convert(in_namecolumn using latin1) collate latin1_swedish_ci

jdbc 直連執(zhí)行 sql

通過 jdbc 連接執(zhí)行 sql 的時候, 如果編碼不一致, 同樣需要對 varchar, char 類型進(jìn)行轉(zhuǎn)換, 如下所示:

... WHERE namecolumn = convert(in_namecolumn using latin1) collate latin1_swedish_ci

否則可能出現(xiàn)以下編碼不一致的錯誤(隨 mysql-connector 版本不同可能有不同的行為):

SQL state [HY000]: error code [1267]: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='

jdbc useSSL 參數(shù)變更

在 mysql-connector-java 配置中, useSSL 參數(shù)有以下不同, 從 5.1.38 開始 useSSL 開始按 MySQL 5.5.45+, 5.6.26+ or 5.7.6+ 的版本默認(rèn)開啟, 對應(yīng)的 requireSSL, verifyServerCertificate 兩個參數(shù)也會跟著開啟:

 5.1.38:
 ConnectionProperties.useSSL=Use SSL when communicating with the server (true/false), defaults to 'false'

>= 5.1.38
 ConnectionProperties.useSSL=Use SSL when communicating with the server (true/false), default is 'true' when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+, otherwise default is 'false'

MySQL 5.7.x 及以上的版本, 默認(rèn)會啟用 ssl, 客戶端連接的時候會自協(xié)商加密, 除非顯示指定不加密. mysql-connector-java 從 5.1.38 開始默認(rèn)開啟 useSSL. 所以用低版本 jdbc 連接 MySQL 5.7.x 不會有加密的問題, 用高版本 jdbc 連接 5.7.6+ 以上會有加密問題, 需要顯示指定 useSSL=false, 用高版本的 jdbc 連接 MySQL 5.5, 5.6 不會有加密問題.

到此這篇關(guān)于MySQL編碼不一致可能引起的一些問題的文章就介紹到這了,更多相關(guān)MySQL編碼不一致引起的問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • php和mysql中uft-8中文編碼亂碼的幾種解決辦法
  • MySQL查看與修改當(dāng)前數(shù)據(jù)庫編碼的方法
  • 修改MySQL數(shù)據(jù)庫中表和表中字段的編碼方式的方法
  • MySql修改數(shù)據(jù)庫編碼為UTF8避免造成亂碼問題
  • MySQL查看和修改字符編碼的實現(xiàn)方法
  • MYSQL數(shù)據(jù)庫使用UTF-8中文編碼亂碼的解決辦法
  • Mysql數(shù)據(jù)庫編碼問題 (修改數(shù)據(jù)庫,表,字段編碼為utf8)
  • 修改mysql5.5默認(rèn)編碼(圖文步驟修改為utf-8編碼)
  • 查看修改mysql編碼方式讓它支持中文(gbk或者utf8)
  • MySQL字符編碼設(shè)置方法

標(biāo)簽:鹽城 沈陽 黔東 沈陽 移動 徐州 珠海 拉薩

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL編碼不一致可能引起的一些問題》,本文關(guān)鍵詞  MySQL,編碼,不一致,可能,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL編碼不一致可能引起的一些問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL編碼不一致可能引起的一些問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章