Django 连接mysql数据库中文乱码
Django 连接mysql数据库中文乱码
版本:CentOS6.8 python3.6.4 django1.8.2 数据库pymysql
我使用的终端是CentOS终端,CentOS桌面版安装的pycham,windows使用Navicat连接mysql数据库。
我遇到的情况大致这样,在CentOS终端进入mysql,然后查询表,中文显示没问题,在Navicat设置了utf-8,中文显示也没问题,但是当我在虚拟环境执行python manage.py shell,使用这个shell查询,中文就乱码了。
乱码第一时间想到的是编码问题,在这里省略一万字,通过各种查找资料,修改配置文件等等,然后结合各种资料信息,终于解决了这个问题!直接进入解决方法!
1:执行pip install PyMySQL ,查找出PyMySQL的安装位置,然后执行cd命令进入,cd /root/.virtualenvs/Cole_py3/lib/python3.6/site-packages/pymysql(这里我的安装目录);
2:在这个目录下有一个connections.py文件,直接进入编辑,
vim connections.py;
3:进入编辑connections.py后,shift +:进入命令行,输入/charset命令查找,打到def ini(),如下图所示:
把charset=’ ‘改为charset=’utf8’;保存退出。
4:接下来在终端运行mysql,执行命令mysql -uroot -p;
5:运行数据库后,执行命令show variables like “%char%”,如图所示;
有几个变量值是latin1的,要把它们改成utf8;网上有资料说执行这个命令
set character_set_client=utf8;
这个执行完之后的确是可以修改,但只是临时的,退出数据库重新登陆又恢复原来的数据,要把它永久修改要执行以下;
6:vim /etc/my.cnf,如下图所示:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
保存退出!
7:再去mysql执行命令show variables like “%char%”; ,你会看到如下图所示:
修改成功!
8:如果有用Navicat的话,要去把编码改为自动;右击数据库,选择连接属性——高级——在编码那里选择自动。
9:最后一步!你现在运行python manage.py shell或者运行mysql,然后查询数据,显示出来还是会乱码的!!!因为这些数据是你之前输入进去的,所以必须要把这些数据删除,然后重新插入!完成!
Navicat
mysql
python manage.py shell
改完重启mysql数据库
Django 连接mysql数据库中文乱码的更多相关文章
- 解决navicate 连接mysql数据库中文乱码的问题
以下均是ubuntu12.04为准 1.修改mysql的配置文件. 1.1.vi /etc/mysql/my.conf找到[client]在其下面添加 default-character-set=u ...
- java连接mysql数据库中文乱码问题
private static final String URL="jdbc:mysql://localhost:3306/ziye?useUnicode=true&character ...
- Mybatis插入MySQL数据库中文乱码
Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...
- django连接mysql数据库以及建表操作
django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找 ...
- Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'
Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?' 一.原因 因为Python版本问题,MySQLdb ...
- Python3之Django连接mysql数据库
一.mysql服务器 系统版本:CentOS6.8 IP :10.0.0.51 版本 1.授权root远程登录 grant all on *.* to 'root'@'%' identifide by ...
- Django 连接 MySQL 数据库及常见报错解决
目录 Django 连接 MySQL数据库及常见报错解决 终端或者数据库管理工具连接 MySQL ,并新建项目所需数据库 安装访问 MySQL 的 Python 模块 Django 相关配置 可能会遇 ...
- mysql数据库 中文乱码
看到一篇很好的文章,转录于此 中文乱码似乎是程序编写中永恒的一个话题和难点,就比如MySQL存取中文乱码,但我想做任何事情,都要有个思路才行,有了思路才知道如何去解决问题,否则,即使一时解决了问题,但 ...
- Mybatis连接mysql数据库出现乱码
对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的 ...
随机推荐
- java前端js和框架内容知识和面试
关于数据库知识和面试 关于JAVA知识和面试 一.多个ajax请求执行顺序问题 若点击一个操作内,发送两个ajax请求,其中一个请求会不会等待另一个请求执行完毕之后再执行? 不会,这两个异步请求会同时 ...
- git bash 连接github并提交项目工程
借鉴博客:https://www.cnblogs.com/flora5/p/7152556.html https://blog.csdn.net/heng_yan/article/details/79 ...
- MAC 的ideal 修改 项目名称
在使用 ideal的时候 ,我拷贝了一个文件,想要修改项目的名称,改了qcs-regulation-hefei 但是 (1)我改了项目名称: (2)还改了 pom.xml 但是还是不行,来回切换不同的 ...
- git总结二、关于分支上——好好认识下分支是怎么回事
同样需要先来明确两件事: HEAD指针指向的是当前分支 分支(master, dev)指向的是最新的提交 一开始,git 中只有一个master分支,严格来讲,HEAD不是指向提交而是指向master ...
- html2canvas 识别 svg 解决方案
参考: 预览地址 http://jsfiddle.net/bv16o50f/1/ html <div class="visualization"> <svg xm ...
- git的命令行输出正确地显示中文文件名
参考:https://stackoverflow.com/questions/22827239/how-to-make-git-properly-display-utf-8-encoded-pathn ...
- [powershell]获取FCID&Port
Get-InitiatorID Get-InitiatorPort
- 第四届 CCCC 团体程序设计天梯赛 游记
我们可能是唯一一个去参加这个比赛的中学生吧(划掉) DAY -inf 一天教练给我们说有这么个比赛,要选人,于是就愉快的开展了一次打字比赛 说实话手真的要抽筋了 不过最后还好涉险过关 DAY -1 疯 ...
- 关于python深浅拷贝的个人浅见
起初,关于python的深浅拷贝,总是习惯去用传值传址的方式去考虑,发现总是get不到规律,容易记混. python有着高度自治的内存管理,而不可变对象的内存分配,则是能省则省,就是说,无论用什么拷贝 ...
- 集合源码分析[2]-AbstractList 源码分析
AbstractList 类型:抽象类 接口的继承以及实现关系 继承AbstractCollection 实现List接口 典型方法实现解析 public List<E> subList( ...