ubuntu中mysql不能插入中文資料

2021-09-28 15:27:21 字數 2622 閱讀 1356

前言

今天在做資料庫的操作的時候,發現中文資料不能插入到資料庫中,查閱資料後,終於是解決.

在插入中文資料時出現了下面的錯誤:

error 1366

(hy000)

: incorrect string value:

'\xe5\xbc\x80\xe5\x8f\x91...'

for column 'caption' at row 1

首先在mysql終端中輸入:

mysql> show variables like 'character%'

;

回車執行:

+--

----

----

----

----

----

----

+---

----

----

----

----

----

----

-+| variable_name | value |+-

----

----

----

----

----

----

-+--

----

----

----

----

----

----

--+| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir |

/usr/share/mysql/charsets/|+

----

----

----

----

----

----

--+-

----

----

----

----

----

----

---+

8 rows in

set(

0.00 sec)

對於這個表中的value="latin1"的資料,就是阻礙我們插入中文的資料,接下來就解決這個問題.

在ubuntu下,我們要修改兩個檔案:

sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
在裡面新增:

character-

set-server = utf8

[mysqld]

## * basic settings

#user = mysql

pid-

file

=/var/run/mysqld/mysqld.pid

socket =

/var/run/mysqld/mysqld.sock

port =

3306

basedir =

/usr

datadir =

/var/lib/mysql

tmpdir =

/tmp

lc-messages-

dir=

/usr/share/mysql

#secure_file_priv= ''

skip-external-locking

character-

set-server = utf8 # 新增到這裡

還有乙個檔案需要修改:

sudo gedit /etc/mysql/conf.d/mysql.cnf
在裡面新增:

[mysql]

default-character-

set= utf8

修改完成後重啟mysql:

sudo

service mysql restart

然後再次進入mysql,插入資料.

但是我們會發現,還是插入不了中文資料,還是會報和上面同樣的錯誤.究其原因,是因為我們插入資料的那個表是在原來的狀態下建立的,編碼格式並不是"utf-8",所以需要將原來的資料表刪除,重新建一張,然後再次插入資料,這樣就可以插入中文資料了.

寫在最後

ubuntu安裝flash player外掛程式問題

然後還有兩個步驟 把libflashplayer.so複製的你瀏覽器的plugins目錄裡面,比如我的火狐瀏覽器就是 usr lib firefox browser plugins這個路徑,你自己要看自己的路徑,然後在終端裡面輸入 sudo cp libflashplayer.so usr lib ...

Ubuntu中解決freemind不能輸入中文問題

在工具 首選項 選擇語言為中文 在 etc x11 xsession.d中建立 75custom scim init 檔案,包括如下內容 export xmodifiers im scim export gtk im module scim export xim program scim d 轉到 ...

mysql批量插入資料 MySQL中批量插入資料

例1 方法一 sql語句操作 delimiter 以delimiter來標記用 表示儲存過程結束 create procedure pre 建立pre 儲存方法 begin declare i int 定義i變數 set i 2 while i 53 do insert into lineinfo ...