Python3 pymysql模块连接数据库报错: TypeError: __init__() takes from 1 to 5 positional arguments but 6 were given


新版本pymysql模块问题导致的错误,其他原因导致请绕道

Python代码如下:

  运行报错: TypeError: __init__() takes from 1 to 5 positional arguments but 6 were given

#!/usr/bin/python3
 
import pymysql

sql = f"select * from serverlist where ip='192.168.10.36'"
# 打开数据库连接
db = pymysql.connect("192.168.10.10", "root", "password", "db_name", 3306 )
# 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询 cursor.execute(sql) # 使用 fetchone() 方法获取单条数据. data = cursor.fetchone() print (data) # 关闭数据库连接 db.close()

两种方法:

可能是新版本问题,我下面这1.0.1版本就有问题

检查pymysql版本:

pip3 show pymysql

 

 

方法一: 

可安装旧版本解决报错:

先卸载当前版本

pip3 uninstall pymysql

安装指定0.10.1版本

pip3 install pymysql==0.10.1

再次运行脚本,就不再报错了

方法二:

或者把连接语句做下修改,键值匹配

db = pymysql.connect(host="192.168.10.10", user="root", passwd="password", db="db_name", port=3306 )

再次运行脚本


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM