zoukankan      html  css  js  c++  java
  • sqlalchemy 使用pymysql连接mysql 1366错误

    一、错误情况 mysql 5.7.2
    python35libsite-packagespymysqlcursors.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连接数据库换成了,官方的连接引擎!然后问题解决了!

    人生还有意义。那一定是还在找存在的理由
  • 相关阅读:
    [2020.12.5周六]Boruvka
    [2020.12.4周五] 圆上对称博弈
    [2020.12.3周四]最长上升子序列
    置顶~ 未来半年内训练计划
    cf1473d
    cf1474D
    寒假复健第一天 cf1475D
    来啦来啦,寒假复健第一题cf1475g
    12.1加训总结 2019南京
    12.7-12.13训练计划
  • 原文地址:https://www.cnblogs.com/ExMan/p/10312196.html
Copyright © 2011-2022 走看看