作为一个初学者,我最近在用scrapy爬顶点小说,得到的数据想存到mysql里面,所以又折腾了一下mysql的配置。结果发现mysql想来对中文都不友好, 只能修改my.cnf使得默认编码方式为utf8。关于具体的配置,网上各种各样的博客都讲的比较详细了,我整理了一个精简版,主要是针对Ubuntu16.04 & MySQL5.7(因为不同版本的mysql的my.cnf或my.ini的位置都不确定)。
1. 因为mysqld.cnf, 和/etc/mysql/目录下的my.cnf中都写了可以用mysqld.cnf覆盖掉my.cnf.
cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
2. 修改/etc/mysql/my.cnf。
主要是插入一段:
[client]
default-character-set = utf8
并且在[mysqld]添加一行
character-set-server = utf8
最后重启mysql
service mysql restart
PS: 要想成功地写入中文,必须确保数据库是修改完编码方式之后创建的。如果是之前创建的数据库, 在重启之后你会发现中文仍然是???,即使restart了也没有用。切记重建数据库,笔者当初就是卡在这里,还思考了很久到底哪里错了。。。