Flask虚拟环境连接mysql出现1366的解决方案
报错信息
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的解决方案的更多相关文章
- nodejs连接mysql突然中断问题解决方案
db/index.js数据库配置文件 一.在数据库连接失败的情况下,回调函数,再次发起连接,直到连接成功为止. handleDisconnect(){ this.connection.connect( ...
- navicat连接 mysql报错1251解决方案
转自:https://blog.csdn.net/XDMFC/article/details/80263215 好不容易安装好mysql,但又出现了mysql客户端版本太低的问题.根据参考的这篇博客, ...
- navicat连接mysql报错1251解决方案
感谢原文作者:XDMFC 原文链接:https://blog.csdn.net/xdmfc/article/details/80263215 问题描述 今天下了个 MySQL8.0,发现Navicat ...
- navicat连接mysql报错1251解决方案,从头搭建node + mysql 8.0 (本人亲测有效)
准备学node 好久了 一直没有动手去写,今天突发奇想,然后就安装了一个mysql (找了一个博客跟着步骤去安装的),然后打算用node 写个增删改查. 1.下载mysql安装包 地址: http ...
- 远程连接MySQL报错1045解决方案
MySQL远端操作步骤: 方法一: USE mysql: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH ...
- flask使用pymysql连接MySQL,生成xls文件并下载到本地
版本一:将MySQL数据写入到excel(xsl)文件并下载到默认文件夹(一般问电脑的下载文件夹里面),并显示特效到前端页面. flask框架连接MySQL,我们使用pymsql这个工具,如下操作: ...
- linux环境下,使用Navicat连接mysql时,提示本地IP无法连接虚拟环境下的mysql解决方案
在Linux环境下,使用Navicat连接mysql时,提示本地IP无法连接虚拟环境下的mysql,提示如下: 而导致连接错误的原因是MYSQL没有开启远程登录权限. 解决方案: 在mysql命令中执 ...
- 远程无法连接Mysql 的解决方案
问题描述: 新安装了MySQL 5.6,使用root用户无法远程连接, 提示Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL ...
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 ...
随机推荐
- Gym - 100851G:Generators(人尽皆知但是WA题)
题意:现在有函数,每一项Xi=(A*X(i-1)+B)%C.现在给定N个函数以及K:X0,A,B,C.然你再每个函数选择一个数,使得其和最大,而且不被K整除. X0,A,B,C<=1e3 :K& ...
- 训练集、测试集loss容易出现的问题总结
train loss 不断下降,test loss不断下降:说明网络仍在学习; train loss 不断下降,test loss趋于不变:说明网络过拟合; train loss 趋于不变,test ...
- Python:os.walk()和os.path.walk()用法
转于:https://www.cnblogs.com/zmlctt/p/4222621.html 博主:zmlctt 一.os.walk() 函数声明:os.walk(top,topdown=True ...
- shell批量创建文件及改名
批量创建文件及改名企业面试题2:使用for循环在/usr/sunzy目录下通过随机小写10个字母,批量创建10个html文件. #!/bin/bash Path=/usr/sunzy [ -d $Pa ...
- 牛叉之nc命令
nc是一款很不错的网络检测工具,以下是详细使用. 'nc.exe -h'即可看到各参数的使用方法. 基本格式:nc [-options] hostname port [ports] - nc -l - ...
- AngularJs(Part 9)--AngularJS 表单
AngularJS 表单 AngularJS使用了MVX的结构,我们可以是传统的表单更加强大.比如过去我们得自己写一大堆验证,比过过去我们得自己转换用户的输入, 现在这些工作全部可以交给Ang ...
- [原创]SQL表值函数:把用逗号分隔的字符串转换成表格数据
我们日常开发过程中,非常常见的一种需求,把某一个用逗号或者/或者其他符号作为间隔的字符串分隔成一张表数据. 在前面我们介绍了 [原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式,当然按照这 ...
- Hive与Hbase结合使用
hive的启动需要使用到zookeeper, 所以, 要么自己搭建zookeeper, 要么跟其它东西一起使用, 我这里做的是跟hbase一起使用的zookeeper, 因为hbase自带zookee ...
- windows下primer3-py安装
primer3是由怀特黑德生物医学研究所Steve Rozen等人发起的一个自动寡核苷酸分析和设计的开源项目,被广泛应用在分子生物领域.primer3-py是用python语言封装的primer3的A ...
- jquery 简单入门
例:GridView