前言
今天在做資料庫的操作的時候,發現中文資料不能插入到資料庫中,查閱資料後,終於是解決.
在插入中文資料時出現了下面的錯誤:
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 ...