pymysql.connect 引发“TypeError:__init__() 采用 1 个位置参数,但给出了 5 个”

问题描述 投票:0回答:4

这是我建立数据库连接的Python代码。但我的代码中出现类型错误。有什么问题吗?

import pymysql

connnection = pymysql.connect("localhost", "root", "", "dbname")

错误:

Traceback(most recent call last):
 File "c:/Users/Dell/Desktop/Full Code/COllectUrls.py", line 21, in <module>
   connnection = pymysql.connect("localhost", "root", "", "dbname")
TypeError: __init__() takes 1 positional argument but 5 were given
python pymysql
4个回答
16
投票

这样就解决了问题。

import pymysql

# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='user',
                             password='passwd',
                             database='db',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

6
投票

这适用于 3.x 版本。

import pymysql

connection = pymysql.connect(host='localhost', user='root', password='', database='db_emp', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)

cursor = connection.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print ("Database version : %s " % data)

1
投票
import pymysql

conn=pymysql.connect(host='localhost',user='root',password='12345678',database='studentdb')

0
投票

我有同样的问题,并使用了 Ramlakhan Kevat 和 mkrieger1 的答案,它无需最后一个参数即可工作:

import pymysql

# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='user',
                             password='passwd',
                             database='db',
                             charset='utf8mb4')
© www.soinside.com 2019 - 2024. All rights reserved.