Python连接到MySQL错误

Python连接到MySQL错误,python,python-3.x,Python,Python 3.x,为什么我总是得到这个错误TypeError:\uuuu init\uuuu()接受1个位置参数,但当我想将Python与MySQL连接时,却给出了2个位置参数 准确的错误代码是: Traceback (most recent call last): File "cone.py", line 4, in conn = mysql.connector.connect(f) File "C:\Python34\lib\site-packages\mysql\connector\__i

为什么我总是得到这个错误
TypeError:\uuuu init\uuuu()接受1个位置参数,但当我想将Python与MySQL连接时,却给出了2个位置参数

准确的错误代码是:

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
在python3.4中,使用pymysql尝试相同的方法

要安装
pip3,请安装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")
>>> 
conn=mysql.connector.connect(f)回溯(最近一次调用last): 文件“”,第1行,在 文件“/usr/lib/python2.7/dist-packages/mysql/connector/_-init___.py”,第98行,在connect中 返回MySQLConnection(*args,**kwargs) TypeError:\uuuu init\uuuuuu()正好接受1个参数(给定2个) >>>conn=mysql.connector.connect(host=“localhost”,user=“uname”,password=“pwd”,database=“reposter$tutorial\u database”) >>>
以下是您的建议尝试一下:

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

如果您已经设法修复了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)

这不应该是:
SELECT*fromtest
是否有堆栈跟踪?告诉你是哪一行导致了问题?你下面是什么例子来获取连接器.connect(f)
语法?@cricket\u 007我刚刚用MySQLdb.connect试过,但它说ImportError:没有名为“MySQLdb”的模块可以安装它,你是在Python3上吗?是的,试过了,但它说的是TypeError:\uuu init\uuuu()取1个位置参数,但给出了5个位置参数,但对于answer@Flo如果你不提供论据,它会这样说。。所以像用户一样分配任务etc@Flo你给出关键词参数了吗?你必须这么做。阅读以下内容:thx获得答案,但我已经用conn=mysql.connector.connect(host=“localhost”,user=“uname”,password=“mypwd”,database=“emp\u db”)尝试过了,它说:TypeError:\uu init\uuuuuuuuuuuuuuuuuuuuuux()接受1个位置参数,但给出了5个位置参数?>>conn=mysql.connector.connect(“localhost”、“dev”、“pwd”、“my_db”)回溯(最近一次调用):文件“/usr/lib/python2.7/dist packages/mysql/connector/uu init_uuuuu.py”中的第1行文件“”,第98行,在connect返回MySQLConnection(*args,**kwargs)类型错误:uu init_uuuuuu()正好取1个参数(给定5)>>>如果你这样给出,它将通过一个错误。。否则它应该可以工作..您没有看到另一个错误正确地说有5个位置参数given@cricket_007你是失踪还是我?
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)
#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)