繁体   English   中英

Python 连接到 MySQL 错误

[英]Python connect to MySQL error

为什么我不断收到此错误TypeError: __init__() takes 1 positional argument but 2 were given但当我想将 Python 与 MySQL 连接时却TypeError: __init__() takes 1 positional argument but 2 were given

确切的错误代码是:

Traceback (most recent call last):
  File "cone.py", line 4, in 
    conn = mysql.connector.connect(f)
  File "C:\Python34\lib\site-packages\mysql\connector\__init__.py", line 179, in connect
    return MySQLConnection(*args, **kwargs)
  File "C:\Python34\lib\site-packages\mysql\connector\connection.py", line 57, in __init__
    super(MySQLConnection, self).__init__(*args, **kwargs)
TypeError: __init__() takes 1 positional argument but 2 were given

这是我的代码:

import mysql.connector

f="localhost","username","password","db"
conn = mysql.connector.connect(f)

c= conn.cursor()

c.execute("SELECT * FROM test")

rows=c.fetchall()

for eachRow in rows:
    print (eachRow)

如果您已经设法修复 MySQLdb,那么您可以像这样连接

import MySQLdb

mydb = MySQLdb.connect(host = 'localhost',user = 'flo',passwd = '********',db = 'yourdb')
cur = mydb.cursor()
command = cur.execute('SELECT * FROM yourtable')
results = cur.fetchall()

print (results)

在python3.4中使用pymysql尝试相同,

安装pip3 install PyMySQL

import pymysql
conn = pymysql.connect("localhost","dev","pwd","db_name")
cur = conn.cursor()

应该像这样在mysql.connector.connect连接

conn = mysql.connector.connect(host="localhost",user="uname", password="mypwd", database="emp_db")

例如,

>>> conn = mysql.connector.connect(f)Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/mysql/connector/__init__.py", line 98, in connect
    return MySQLConnection(*args, **kwargs)
TypeError: __init__() takes exactly 1 argument (2 given)
>>> conn = mysql.connector.connect(host="localhost",user="uname", password="pwd", database="reposter$tutorial_database")
>>> 

这是文档

#import mysql connector
import mysql.connector

#declare your database variables
DBHOST = 'localhost'
DBNAME = 'database_name'
DBUSER = 'root'
DBPASS = ''

#establish the connection
connection = mysql.connector.connect(host=DBHOST, database=DBNAME, user=DBUSER, passwd=DBPASS)

试试这个:

conn = mysql.connector.connect(host="host", user="username",   password ="pwd", database="db")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM