系统环境:ubuntu 14.04 mysql版本:5.5
使用python操作mysql相对简单,但是要注意数据的编码问题.刚开始使用英文入库,
没有出现问题,但是看到网上有人说编码问题,就试着使用中文入库,果不其然会出现乱码.在此记录一下解决方法.
(1)在python连接数据库的时候,设置chaset=utf-8
,保证插入数据编码为utf-8;
(2)查看mysql编码:
a ) ctrl+t开启终端,输入mysql账号和密码进入mysql,命令格式
sudo mysql - u 用户名 -p 密码;
b ) 进入mysql后,输入
show variables like '%character%';
可以发现mysql-server和database的编码为latin1
.
(3)修改mysql编码
找到mysql配置文件,使用apt-get命令安装的mysql的配置文件位置:/etc/mysql/my.cnf
,修改添加编码
a) 在[client
]下追加:
default-character-set=utf8
b) 在[mysqld
]下追加:
character-set-server=utf8
init_connect='SET NAMES utf8'
c) 在[mysql
]下追加:
default-character-set=utf8
(4)重启mysql
sudo /etc/init.d/mysql restart
一般情况下,这样设置后mysql的字符编码会改为utf8,不过需要注意的事情是,
如果在这之前你已经创建了数据库,编码不是utf8的话,
你再插入数据还会是乱码;我重新create数据库,默认编码为utf8时,这时再插入数据都可以正常显示.
(注意:1.最好是在创建数据库的开始就设置好编码 ; 2.出现错误,查看log文件,log文件一般存放位置:var/log/
)
关于编码问题,如遇到问题基本可从下面资料找到解决思路.
参考资料:
(1)http://blog.youkuaiyun.com/moxiaomomo/article/details/8539578 (推荐)
(2)http://www.2cto.com/os/201404/292378.html
(3)http://www.pc6.com/infoview/Article_63586.html
(4)http://blog.youkuaiyun.com/lihengfang/article/details/17390281
(5)http://www.2cto.com/database/201206/134497.html
(6)http://blog.sina.com.cn/s/blog_7c35df9b010122ir.html