sqlalchemy 使用pymysql连接mysql 1366错误
一、错误情况 mysql 5.7.2
\python35\lib\site-packages\pymysql\cursors.py:166: Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 480")
result = self._query(query)
今天在使用ORM链接数据库时遇到到了这个错误,使用的是sqlalchemy(mysql+pymysql)可以正常插入数据,不管是在mysql客户端SQL语句,还是orm下,但是错误只有orm查询数据时给出。在网上看了很多,我本身数据库my.ini如下默认default-character-set=utf8 ,本身也不是插入中文出错
.......
# *** upgrade to a newer version of MySQL.
[client]
default-character-set=utf8
[mysqld]
port=3306
basedir ="G:\mysql"
......
1.1 检查自己Mysql配置
my.ini 如上
你要确认自己字符编码还可以使用命令
`mysql> show variables like '%char%';`
查看自己编码
1.2 python的编码也为utf-8
二、问题所在
作者猜测可能是Mysql驱动,以前在廖雪峰网站看mysql时廖雪峰网站
有个操作:安装模块
pip install mysql-connector-python
本人亲测不建议加上参数--allow-external 直接pip安装
以下为原文:
由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。MySQL官方提供了mysql-connector-python驱动,但是安装的时候需要给pip命令加上参数--allow-external:
pip install mysql-connector-python--allow-external mysql-connector-python
如果上面的命令安装失败,可以试试另一个驱动:
pip install mysql-connector
三、解决办法
第一步:
如上第一步命令行下安装模块:mysql-connector-python
pip install mysql-connector-python
或官网下载:
到MySQL官网下载并安装mysql-connector-python:https://dev.mysql.com/downloads/connector/python/
第二步:
将连接引擎的:mysql+pymysql
engine = create_engine("mysql+pymysql//user:password@host/{data_base}",encoding='utf-8')
修改为:mysql+mysqlconnector
engine = create_engine("mysql+mysqlconnector//user:password@host/{data_base}",encoding='utf-8')
就是将pymysql连接数据库换成了,官方的连接引擎!然后问题解决了!
人生还有意义。那一定是还在找存在的理由
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?