连接MySQL时出现“TypeError: 需要一个整数”

0 投票
1 回答
3692 浏览
提问于 2025-04-17 16:02

我是个完全的新手,刚开始学Python。

我正在按照这个页面上的教程来做。但是当我运行我的代码时,控制台里出现了一个错误。

Traceback (most recent call last):
  File "/Users/tejenshrestha/Documents/ProjectAccess/access/trunk/analysis/src/json_xml/Database.py", line 37, in <module>
    con = MySQLdb.connect(socket, dbhost, dbuser, dbpass, dbname);
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
TypeError: an integer is required

我搜索了一些解决方案,发现需要包含unix_socket的路径,我已经按照要求加上了,你可以看到。

我还在使用XAMPP,我用的socket路径是XAMPP的my.cnf文件里指定的。我的MySQL正在运行,端口是3306。

请帮帮这个新手。

这是我的Python代码:

import MySQLdb
import sys

con = None
dbhost = "localhost"
port   = "3306"
dbuser = "root"
dbpass = "password"
dbname = "name"
socket = "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock"

try:
    con = MySQLdb.connect(socket, dbhost, dbuser, dbpass, dbname);
    cur = con.cursor()
    cur.execute("SELECT VERSION()")

    data = cur.fetchone()
    print "Database version : %s " % data

except MySQLdb.Error, e:
    print "Error %d: %s" % (e.args[0],e.args[1])
    sys.exit(1)

finally:    
    if con:    
        con.close()

1 个回答

4

把端口周围的引号去掉,看看这样是否有效。


<brilliant code>
port = 3306
<brilliant code>

我觉得你需要在你的连接函数中给参数加上标签,看看这里的最佳答案:

我该如何在Python中连接到MySQL数据库?

撰写回答