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劇照