为什么mysql.connector.connect失败并出现内部错误?

时间:2020-10-08 15:14:16

标签: python mysql mysql-connector-python

我正在将数据库应用程序从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或在命令行中使用相同的凭据进行连接。

2 个答案:

答案 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) '''

使用它并根据您的配置替换值。