Django 连接mysql数据库中文乱码

2018年08月25日 20:55:15 可乐乐乐乐乐 阅读数:566
 

版本: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数据库中文乱码的更多相关文章

  1. 解决navicate 连接mysql数据库中文乱码的问题

    以下均是ubuntu12.04为准 1.修改mysql的配置文件. 1.1.vi  /etc/mysql/my.conf找到[client]在其下面添加 default-character-set=u ...

  2. java连接mysql数据库中文乱码问题

    private static final String URL="jdbc:mysql://localhost:3306/ziye?useUnicode=true&character ...

  3. Mybatis插入MySQL数据库中文乱码

    Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...

  4. django连接mysql数据库以及建表操作

    django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找 ...

  5. Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'

    Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?' 一.原因 因为Python版本问题,MySQLdb ...

  6. Python3之Django连接mysql数据库

    一.mysql服务器 系统版本:CentOS6.8 IP :10.0.0.51 版本 1.授权root远程登录 grant all on *.* to 'root'@'%' identifide by ...

  7. Django 连接 MySQL 数据库及常见报错解决

    目录 Django 连接 MySQL数据库及常见报错解决 终端或者数据库管理工具连接 MySQL ,并新建项目所需数据库 安装访问 MySQL 的 Python 模块 Django 相关配置 可能会遇 ...

  8. mysql数据库 中文乱码

    看到一篇很好的文章,转录于此 中文乱码似乎是程序编写中永恒的一个话题和难点,就比如MySQL存取中文乱码,但我想做任何事情,都要有个思路才行,有了思路才知道如何去解决问题,否则,即使一时解决了问题,但 ...

  9. Mybatis连接mysql数据库出现乱码

    对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的 ...

随机推荐

  1. vue 父子之间的通讯

    //父组件<template>     <Button @click='openChild'><Button>      <child-modal :moda ...

  2. Win10 + MySQL + Tableu + PPT + 可视化方案

    1. 官网下MySQL 2. 解压到硬盘, 新建my.ini文件: [mysql] ; 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] ;设置3 ...

  3. Centos6.5 pppoe-server

    [root@localhost network-scripts]# rpm -q rp-pppoepackage rp-pppoe is not installed ----------------- ...

  4. C语言博客作业02--循环结构

    1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 经过本周学习,对c循环结构有了深入,无论是单层循环结构还是嵌套循环结构的问题,我都学会有一定的解决能力, ...

  5. Linux跑脚本用sh和./有什么区别?(转)

    sh是一个shell.运行sh a.sh,表示我使用sh来解释这个脚本:如果我直接运行./a.sh,首先你会查找脚本第一行是否指定了解释器,如果没指定,那么就用当前系统默认的shell(大多数linu ...

  6. [CF 1043F] Make It One

    Description 给定 \(n\) 个正整数 \(a_i\),最少选出多少个 \(a_i\) 使得他们 \(gcd\) 为 \(1\)?\(n,a_i\le 3\times 10^5\). So ...

  7. 【XSY2851】蛋糕 数学

    题目大意 有一个边长为 \(1\) 的正 \(n\) 边形,你要把这个正 \(n\) 边形放到一个正 \(m\) 边形里面,且两个多边形的中心重合. 问你这个正 \(m\) 边形的边长最小是多少. \ ...

  8. Flex布局【弹性布局】学习

    先让我们看看在原来的学习中遇到的问题 之前在软件工程的大作业中,自己从零开始学习如何开发一个网站,从页面,到后台,当然数据库是大二的必修课 在学习如何编写一个静态页面的时候,完全是自学,自己摸索,所以 ...

  9. [BJOI2017]树的难题

    题目描述 给你一棵 n 个点的无根树. 树上的每条边具有颜色.一共有 m 种颜色,编号为 1 到 m.第 i 种颜色的权值为 ci. 对于一条树上的简单路径,路径上经过的所有边按顺序组成一个颜色序列, ...

  10. [Ynoi2019模拟赛]Yuno loves sqrt technology I

    题目描述 给你一个长为n的排列,m次询问,每次查询一个区间的逆序对数,强制在线. 题解 MD不卡了..TMD一点都卡不动. 强制在线的话也没啥好一点的方法,只能分块预处理了. 对于每个块,我们设lef ...