python操作Mysql入库,编码(乱码问题)解决

系统环境: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值