一,異常資訊:[hy000][1366] incorrect string value: '\xe5\xb0\x8f\xe5\x8d\x96...' for column 'shop_name' at row 1
1,檢視table 編碼
2,解決
a),
alter table shop default character set utf8;
alter table shop change shop_name shop_name varchar(36) character set utf8 not null ;
b),
alter table `shop` default character set utf8,
modify `shop_name` char(10) character set utf8 not null,
modify `item_name` varchar(32) character set utf8 not null;
3,結果
二,修改資料庫字符集
a),window環境 在安裝目錄找到my.ini檔案修改對應characte配置即可。
b),linux 環境 修改對應my.cnf檔案對應character配置 即可
以上兩種情況均要重啟服務才會生效。
命令列設定也可
引數解釋:
show variables like 'character%';# 會有8個變數
一、character_set_client
主要用來設定客戶端使用的字符集。
二、character_set_connection
主要用來設定連線資料庫時的字符集,如果程式中沒有指明連線資料庫使用的字符集型別則按照這個字符集設定。
三、character_set_database
主要用來設定預設建立資料庫的編碼格式,如果在建立資料庫時沒有設定編碼格式,就按照這個格式設定。
四、character_set_filesystem
檔案系統的編碼格式,把作業系統上的檔名轉化成此字符集,即把 character_set_client轉換character_set_filesystem, 預設binary是不做任何轉換的。
五、character_set_results
資料庫給客戶端返回時使用的編碼格式,如果沒有指明,使用伺服器預設的編碼格式。
六、character_set_server
伺服器安裝時指定的預設編碼格式,這個變數建議由系統自己管理,不要人為定義。
七、character_set_system
資料庫系統使用的編碼格式,這個值一直是utf8,不需要設定,它是為儲存系統元資料的編碼格式。
八、character_sets_dir
這個變數是字符集安裝的目錄。
mysql 啟動之後 只需要關係這幾個變數是否符合我們要求即可,其他不會影響亂碼等問題。
character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server
修改字符集 set character_set_*** = 「gbk」;(***是寫以上的變數名)
set命令指示臨時修改,如果重啟了對應mysql服務,修改會重置,如果想要永久修改,推薦使用修改配置檔案。
乙個完整的請求的字符集轉換流程
mysql server收到請求時將請求資料從character_set_client轉換為character_set_connection進行內部操作前將請求資料從character_set_connection轉換為內部操作字符集,步驟如下
a. 使用每個資料字段的character set設定值;
b. 若上述值不存在,則使用對應資料表的字符集設定值
c. 若上述值不存在,則使用對應資料庫的字符集設定值;
d. 若上述值不存在,則使用character_set_server設定值。
最後將操作結果從內部操作字符集轉換為character_set_results
完畢!
mysql字符集修改 MySql字符集修改
問題分析 普通的字串或者表情都是佔位3個位元組,所以utf8足夠用了,但是移動端的表情符號佔位是4個位元組,普通的utf8就不夠用了,為了應對無線網際網路的機遇和挑戰 避免 emoji 表情符號帶來的問題 涉及無線相關的 mysql 資料庫建議都提前採用 utf8mb4 字符集,這必須要作為移動網際...
修改MySQL預設字符集編碼
好記心不如爛筆頭,很多東西當時沒記下來,過了就忘了,下次用到時又得浪費好多時間才能解決。今天又遇到修改mysql預設字符集編碼的問題,折騰了半天解決了,趕快記錄下來,以後就不用每次折騰了。檢視mysql字符集的命令是 show variables like char 以mysql5.6為例,預設的字...
mysql字符集編碼
檢視編碼字符集 show variables like collation show variables like character set 在命令列修改字元編碼 例如gb3212 set character set client gb2312 客戶端編碼方式 set character set ...