报错信息

Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 518

自己遇到了这个问题,然后基本上把stackflow和所有博客上的解决方案都操作了一遍,在这里整理一下希望能帮助到更多的同学。

解决方法

首先放上flask连接数据库的代码:

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:password@127.0.0.1:3360/movie"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True

遇到这个问题,一般上是编码问题,所以可以通过以下方法检查编码问题:

1.确认mysql数据库编码没问题:找到mysql安装目录,打开my.ini配置文件,检查default-character-set是否为utf8

2.再排除pycharm编码没问题:pycharm>>settting>>editor>>file encodings是否为utf8

3.通过命令行能进入mysql但是代码不能进入mysql,可能是连接方式的编码问题

 show variables like 'character%';  ——查看所有编码方式

 show create table table_name;   ——查看某个表格的编码方式

 status  ——查看

查看并修改mysql的编码方式,haracter_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码; character_set_results结果集的编码; character_set_server数据库服务器的编码; 只要保证以上四个采用的编码方式一样,就不会出现乱码问题。更具体的可以看这篇解答和这篇博客

都不行的话,可能编码方式没有问题,但是是实驱动的问题,解决办法如下:

具体如下:

1,在虚拟环境中安装

pip install mysql-connector

2.修改

app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:mysql@127.0.0.1:3306/goods"
为 app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+mysqlconnector://root:mysql@127.0.0.1:3306/goods"

如果代码上没有问题的话,基本不可能是其他问题了。如果连接的时候显示:

authentication plugin 'caching_sha2_password'

这是加密方式有问题,看了stackflow上的一些解答,有这几种方法:

1.将环境安装为python3.6,因为3.5及以下版本不支持mysql的'caching_sha2_password'方法

2.通过

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

flush privileges;

查看数据加密方式的命令为:select host,user,plugin from mysql.user;

将所有的数据表变成这样:

mysql> select host,user,plugin from mysql.user;

+-----------+------------------+-----------------------+

| host      | user             | plugin                |

+-----------+------------------+-----------------------+

| %         | yun              | mysql_native_password |

| localhost | mysql.infoschema | mysql_native_password |

| localhost | mysql.session    | mysql_native_password |

| localhost | mysql.sys        | mysql_native_password |

| localhost | root             | mysql_native_password |

+-----------+------------------+-----------------------+

5 rows in set (0.00 sec)

3.reconfigure mysql server,进入mysql的安装界面,点击reconfigure将mysql的加密方式变为USE LEGACY..的加密方式就OK了

笔者试了所有的方法,最后一种才奏效,仅供参考。

Flask虚拟环境连接mysql出现1366的解决方案的更多相关文章

  1. nodejs连接mysql突然中断问题解决方案

    db/index.js数据库配置文件 一.在数据库连接失败的情况下,回调函数,再次发起连接,直到连接成功为止. handleDisconnect(){ this.connection.connect( ...

  2. navicat连接 mysql报错1251解决方案

    转自:https://blog.csdn.net/XDMFC/article/details/80263215 好不容易安装好mysql,但又出现了mysql客户端版本太低的问题.根据参考的这篇博客, ...

  3. navicat连接mysql报错1251解决方案

    感谢原文作者:XDMFC 原文链接:https://blog.csdn.net/xdmfc/article/details/80263215 问题描述 今天下了个 MySQL8.0,发现Navicat ...

  4. navicat连接mysql报错1251解决方案,从头搭建node + mysql 8.0 (本人亲测有效)

    准备学node 好久了 一直没有动手去写,今天突发奇想,然后就安装了一个mysql (找了一个博客跟着步骤去安装的),然后打算用node 写个增删改查. 1.下载mysql安装包   地址: http ...

  5. 远程连接MySQL报错1045解决方案

    MySQL远端操作步骤: 方法一: USE mysql: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH ...

  6. flask使用pymysql连接MySQL,生成xls文件并下载到本地

    版本一:将MySQL数据写入到excel(xsl)文件并下载到默认文件夹(一般问电脑的下载文件夹里面),并显示特效到前端页面. flask框架连接MySQL,我们使用pymsql这个工具,如下操作: ...

  7. linux环境下,使用Navicat连接mysql时,提示本地IP无法连接虚拟环境下的mysql解决方案

    在Linux环境下,使用Navicat连接mysql时,提示本地IP无法连接虚拟环境下的mysql,提示如下: 而导致连接错误的原因是MYSQL没有开启远程登录权限. 解决方案: 在mysql命令中执 ...

  8. 远程无法连接Mysql 的解决方案

    问题描述: 新安装了MySQL 5.6,使用root用户无法远程连接, 提示Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL ...

  9. 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案

    转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 ...

随机推荐

  1. CH#24C 逃不掉的路 和 HDU3686 Traffic Real Time Query System

    逃不掉的路 CH Round #24 - 三体杯 Round #1 题目描述 现代社会,路是必不可少的.任意两个城镇都有路相连,而且往往不止一条.但有些路连年被各种XXOO,走着很不爽.按理说条条大路 ...

  2. Exchange邮箱设置,android手机和mac book

    假设 用户名:abc 密码:123 公司名是:qq 一 android手机: 1 输入地址:abc@qq.com 2 密码:123 3 协议:EXCHANGE 点击下一步 用户名:abc 域名:qqc ...

  3. javascript:delete 删除对象的属性

    delete 运算符删除对以前定义的对象属性或方法的引用. 不可以删除的如下: 1通过var定义的变量 var a=1;delete a//false 2 声明后的函数 function a(){}; ...

  4. bzoj 1043 下落的圆盘 —— 求圆心角、圆周长

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1043 求出每个圆没被覆盖的长度即可: 特判包含和相离的情况,注意判包含时 i 包含 j 和 ...

  5. MongoDB之二基础入门(window/linux安装启动)

    mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”. 一window安装与启动 一. 下载 上MongoDB官网 ,下载页面:https://w ...

  6. 办公软件-Excel:Microsoft Office Excel 2003百科

    ylbtech-办公软件-Excel:Microsoft Office Excel 2003百科 Microsoft® Office Excel 2003 是一种电子表格程序,可提供对于 XML 的支 ...

  7. Python-连接Redis并操作

    首先开启redis的外连 sch01ar@ubuntu:~$ sudo vim /etc/redis/redis.conf 把bind 127.0.0.1这行注释掉 然后重启redis sudo /e ...

  8. python并发编程之多进程2数据共享及进程池和回调函数

    一.数据共享 尽量避免共享数据的方式 可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实上Manager的功能远不止于此. 命令就是一 ...

  9. 大数据处理之道(十分钟学会Python)

    一:python 简介 (1)Python的由来 Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个 ...

  10. ansible 基础 简介及 安装

    ansible 运维自动化工具. 没有客户端,底层通信依赖于系统软件,linux下基于openssh,win基于powershell