Python MySQLdb 在命令行上从 Python 工作

我有一个名为 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”,但似乎没有任何效果。我感谢任何帮助谢谢!


当年话下
浏览 141回答 1
1回答

慕尼黑5688855

我不得不将连接参数中的端口更改为 host="localhost",port=3306。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python