我有一个名为getpos的Django views.py函数,该函数由apache2和wsgi.py提供。如果我在Ubuntu命令行的普通Python会话中从views.py运行完全相同的代码,则MySQLdb连接可以正常工作:
>>> import MySQLdb
>>> db = MySQLdb.connect(host="localhost",port=22,user="root",passwd="mypassword",db="gps")
>>>
>>> cursor = db.cursor()
如果我从django调试服务器运行它,它将失败并显示以下信息:
ERROR: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)")
运行的代码是这样:
def getpos(request):
query = "SELECT * FROM..."
# connect to the DB and return nearby deals
db = MySQLdb.connect(host="localhost",port=22,user="root",passwd="mypassword",db="gps")
cursor = db.cursor()
# Query the gps Data database
results = cursor.execute(query)
db.commit()
为什么我可以在命令行从Python连接,但不能在Django的views.py文件中连接?谢谢。
我尝试使用“ 127.0.0.1”代替“ localhost”,但是似乎没有任何效果。感谢您的帮助!
答案 0 :(得分:1)
我必须将connect参数中的端口更改为host =“ localhost”,port = 3306。