我正在将数据库应用程序从Python 2.7升级到3.4。我最初使用mysqldb,但尝试切换到mysql-connector。我的数据库连接失败,并出现内部TypeError。这是代码和错误:
import mysql.connector
try:
dbh = mysql.connector.connect("localhost","pyuser","pypwd","jukebox")
except mysql.connector.Error as err:
print("Failed opening database: {}".format(err))
exit(1)
这是错误:
# python loadcd.py
Traceback (most recent call last):
File "loadcd.py", line 12, in <module>
dbh = mysql.connector.connect("127.0.0.1","pyuser","pypwd","jukebox")
File "/usr/local/lib/python3.4/dist-packages/mysql/connector/__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/mysql/connector/connection.py", line 57, in __init__
super(MySQLConnection, self).__init__(*args, **kwargs)
TypeError: __init__() takes 1 positional argument but 5 were given
我很茫然。完全相同的连接适用于mysqldb,我可以使用PHP或在命令行中使用相同的凭据进行连接。
答案 0 :(得分:1)
您应提供关键字参数:
dbh = mysql.connector.connect(host="localhost",user="pyuser",password="pypwd",database="jukebox")
答案 1 :(得分:1)
''' 导入mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword"
)
打印(mydb) '''
使用它并根据您的配置替换值。