0
Python newb在這裏。當試圖連接到MySQL時,獲取「TypeError:一個整數是必需的」
我正在關注this page的教程。但是當我運行我的代碼時,在控制檯中出現以下錯誤。
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並且我使用的套接字路徑是在XAMPP的my.cnf文件中指定的路徑。我有MySQL運行和端口它是3306.
請幫助這個noob。
的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()
我想,以前的GOT和錯誤,如:參數3必須是String類型。我嘗試重新排列參數的順序,以便套接字和端口(端口是數字)是最後一個參數,仍然會得到相同的錯誤。不知道我是否正確地排列了參數。 – 2013-02-15 19:25:21
嗯。你不應該改變參數的順序,除非你標記它們,所以你的函數調用看起來像'MysqlDB.connect(port = 3306,...)'。所以試着用你的專有名稱來標記你的函數的參數。 – BenDundee 2013-02-15 19:27:48
謝謝!標記它們使它工作。 – 2013-02-15 19:31:40