python連接mysql問題(包含警告1366, "Incorrect string value:問題)


問題####

關於mysql不多講,我是用的是mysql5.7版本,使用數據庫管理工具navicat for mysql,python使用python3.7版本,在使用python連接mysql時出現警告Warning: (1366, "Incorrect string value: '\xD6\xD0\如圖:

我的連接代碼是
engine = create_engine("mysql+pymysql://root:password@127.0.0.1:3306/mydata?charset=utf8")#操作數據庫

以下是解決方法:####

在使用python連接mysql時需要先安裝mysql-python模塊,然后安裝mysql-connector-python驅動(在anaconda中的安裝命令是conda install mysql-connector-python),也可以在pycharm中引用import mysql選擇mysql-connector-python自動安裝(若安裝不成功還是使用命令安裝),之后修改連接代碼為:
engine= create_engine('mysql+mysqlconnector://root:password@127.0.0.1:3306/mydata?charset=utf8')
就不會出現警告了,下面貼上測試代碼:

from sqlalchemy import create_engine, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column

#創建數據庫
engine= create_engine('mysql+mysqlconnector://root:password@127.0.0.1:3306/mydata?charset=utf8')
Session= sessionmaker(bind=engine)
#聲明一個基類
Base = declarative_base()

class Ltabel(Base):
    #表名
    __tablename__ = 'rp'
    #id
    id=Column(Integer,primary_key=True,autoincrement=True)
    #崗位id
    positionId=Column(Integer,nullable=False)
    #崗位名稱
    positionName=Column(String(length=20),nullable=False)
    #list
    compylist=Column(String(length=20),nullable=True)

if __name__ == "__main__":
    #創建數據表
     Ltabel.metadata.create_all(engine)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM