mysql.connector 小结

总结使用mysql.connector过程中遇到的问题及解决办法:

1. 当Mysql的版本为8.0及以上时,利用mysql.connector连接Mysql出现如下错误:

mydb = mysql.connector.connect(host="localhost", user="root", passwd="1234", database="rac_ecust")

mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

    可以采用如下方式解决:

    mydb = mysql.connector.connect(host="localhost", user="root", passwd="1234", database="rac_ecust", auth_plugin='mysql_native_password')

 

2. 利用mysql.connector操作MySQL时,如果出现(在一个非套接字上尝试了一个操作):

    

    可能是由于与数据库已关闭连接,重连数据库。

 

3. 执行SELECT语句进行排序查询记录时,如果数据库中这个表的记录数小于等于查询的记录数(上面为5)时,则无法查询:

    

 

4. 使用mysql.connector如下的命令进行读取数据库记录时,若无记录,不会报错!

    mycursor.execute("SELECT * FROM table_name")

    但是如下读取数据时,record的数据类型是NoneType

    record = mycursor.fetchone()

    若有记录,第一句并不会返回记录数,而pymyql是可以的,可以尝试一下:

    

    同时,与pymysql不同的是,在mysql.connector中,以上两句命令必须一起出现,即执行完第一句,若不执行第二句,则接下来操作数据库会报错!

 

5. 利用mysql.connector进行查询Mysql记录时通常需要执行如下命令:

    my.execute("SELECT * FROM table_name")
    my.fetchone() or my.fetchall()

    其中, fetchone() 返回的是 tuple; fetchall()  返回的是 list,里面的每一个元素都是一个tuple

 

6. 将数据存入Mysql数据库时,可能会出现结构不匹配的问题:

Python 'float64' cannot be converted to a MySQL type

     此时需要将原数据转换成float类型,例如使用float()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值