MySQL常見問題及解決辦法

最近,在Ubuntu下使用MySQL存儲爬蟲數據時,遇到一些問題,現做一個總結,將使用過程中踩過的坑慢慢記錄下來。

  • 運行環境:Ubuntu 17.10
  • MySQL版本: 5.7.20

一.寫入中文數據時報編碼錯誤

MySQL的默認編碼是Latin1,不支持中文,要支持中文需要把資料庫的默認編碼修改為gbk或者utf8。下面是更改默認編碼的方法:

1.以root用戶身份登陸MySQL,查看編碼方式:

(以root用戶身份登陸的命令為:>mysql -u root –p,輸入登陸秘密,然後輸入"show variables like character%;"即可查看編碼信息 )

查看默認編碼方式

  • character_set_client為客戶端編碼方式;
  • character_set_connection為建立連接使用的編碼;
  • character_set_database資料庫的編碼;
  • character_set_results結果集的編碼;
  • character_set_server資料庫伺服器的編碼;

由上圖可見database和server的字符集使用了latin1編碼方式,不支持中文,即存儲中文時會出現亂碼。

2.修改相關文件

linux系統下,修改MySQL資料庫默認編碼的步驟為:

  • 修改/etc/mysql/mysql.conf.d/mysqld.cnf 文件

xhost + #如果xhost +不能執行,報錯:xhost : unable to open display 「」nsudo gedit /etc/mysql/mysql.conf.d/mysqld.cnfn

  • 在 [mysqld ] 下面加入

#我這裡更改為utf8mb4是因為存儲emoji表情報錯。nncharacter-set-client-handshake = FALSEncharacter-set-server = utf8mb4ncollation-server = utf8mb4_unicode_cininit_connect=SET NAMES utf8mb4n

  • 修改mysql.cnf文件

sudo gedit /etc/mysql/conf.d/mysql.cnfn

  • 在[mysql]下方加入

default-character-set = utf8mb4n

3.重啟mysql

mysql service restartn

4.查看更改後的編碼方式

好了,設置完畢,可以愉快的存儲數據了,還能保存emoji表情。

推薦閱讀:

Python3爬蟲(3)單網頁簡單爬取文字信息
根據小甲魚60課編寫的爬取貼吧mm程序(python2.7)
156個Python網路爬蟲資源,媽媽再也不用擔心你找不到資源!
Python3如何將圖片保存到本地?
python爬蟲爬取圖片--Neets劇照

TAG:MySQL | python爬虫 |