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 )

再次运行脚本

posted @ 2021-01-09 18:15  我要日女辅助  阅读(5220)  评论(0)    收藏  举报