MySQL問題記錄--python插入中文至MySQL提示SQLErroor:1366錯誤


一、在爬蟲腳本做以下操作仍提示錯誤:SQL Error: 1366: Incorrect string value: "\xd0\xc2\xce\xc5…" for column "mian_title" at row 1

  1、在文件頭添加

  #coding:utf8

  2、添加:

  import sys   reload(sys)   sys.setdefaultencoding('utf-8')

  

二、解決方法

  1、檢查數據庫此字段的字符集與整理字符集是否與SQL語句傳遞數據的字符集相同;不相同則會引發MySQL1366錯誤。

mysql> show full columns from main_news;  #顯示數據表所有字段使用的狀態(包括使用的字符集)。這里我的數據表名是main_news
  

   可以看出,main_title字段的Collation項非utf8,進行修改。

  2、修改

mysql> alter table main_news change main_title main_title varchar(900) character set utf8 collate utf8_unicode_ci not null default '';

  在使用命令查看修改已成功完成。

 

附:上面的方法是從單個字段修改,下面介紹表,數據庫的修改

修改數據庫字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

把表默認的字符集和所有字符列(CHAR,VARCHAR,TEXT)改為新的字符集:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

只是修改表的默認字符集:

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

參考鏈接:http://fatkun.com/2011/05/mysql-alter-charset.html

 

  至此,爬蟲腳本成功將中文數據寫入至數據庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM