1. 程式人生 > >Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解決方法

Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解決方法

MySQL ERROR 1366(HY000):Incorrect string value,在往資料庫中插入中文的時候會出現。

這也就是編碼問題,網上大部分都是說設定下配置檔案中的設定,而可悲的是在我的環境中配置檔案是不允許修改,或者說和其他版本的不同。


大家都知道中文常用的編碼方式是gbk或者utf-8。我建議是使用utf-8這種編碼方式,因為大勢所趨。

我們有時候設定了mysql的配置檔案,而創建出來的 database ,table 的character 任然為預設的 latin1。

我們可以通過 show create database/table database_name/table_name;來檢視所創的庫和表的character。會出現ERROR 1366錯誤的,編碼上就可能存在問題。如果編碼問題,那一下內容就不用看了,我的這個筆記幫不了你。


解決方法有好幾個,我也是百度了很久,把兩個成功的方法羅列在下面,方便自己方便他人。

方法一:在建立資料的時候設定好character ,這樣再建立 table的時候會和database的編碼方式相同。

CREATE DATABASE <DATABASE_NAME> CHARACTER SET <CODE>;

當然如果database建立的時候忘了設定,在建立表的時候任然可以設定character來補救。

CREATE TABLE <TABLE_NAME> (.......) CHARACTER SET <CODE>;


方法二:如果你很不辛的在建立database和table的時候都忘了設定character,那就可以使用方法二

alter table <tbname> convert to charset gbk;

或者

alter table <tbname> convert to charset utf8;


---------------------
作者:DSpank
來源:CSDN
原文:https://blog.csdn.net/woainishmeng/article/details/67638617
版權宣告:本文為博主原創文章,轉載請附上博文連結!