2013-02-15 3 views
0

총 파이썬 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입니다.

이 놈을 도와주세요.

파이썬 코드 :

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() 

답변

4

포트 주변에서 따옴표를 가지고 그 작동되는지 확인합니다.


<brilliant code> 
port = 3306 
<brilliant code> 

난 당신이, 당신의 연결 함수에서 인수 레이블을 여기 상단 대답 볼 필요가 있다고 생각 :

How do I connect to a MySQL Database in Python?

+0

내가 노력을 그 이전에 GOT 및 오류 같은 : '인자 3은 String 타입이어야합니다. 소켓과 포트 (번호가되는 포트)가 마지막 매개 변수가되고 여전히 동일한 오류가 발생하도록 매개 변수의 순서를 재 배열했습니다. 인수를 올바르게 주문했는지 확신 할 수 없습니다. –

+0

흠. 레이블을 지정하지 않으면 인수의 순서를 변경해서는 안되기 때문에 함수 호출은'MysqlDB.connect (port = 3306, ...)'처럼 보일 것이다. 따라서 함수의 인수에 적절한 이름을 붙이십시오. – BenDundee

+0

고마워! 라벨을 붙이면 효과가있었습니다. –

관련 문제