Django + PyMSQL + WSGI

时间:2015-01-15 15:06:51

标签: python mysql django mod-wsgi pymysql

我有一个应用程序使用PySQL和以下函数访问远程mysql库

def db_query(username, password, host, db, query):
    try:
        db = pymysql.connect(host=host, user=username, passwd=password, db=db)
    except pymysql.err.OperationalError as e:
        errorLog = e
        return [0, errorLog]

    # you must create a Cursor object. It will let you execute all the query you need
    cur = db.cursor()

    cur.execute(query)
    result = cur.fetchall()

    cur.close()
    db.close()  

    return result

我最近将Django从1.7.1更新到1.7.3。在更新代码工作之前。现在,当我正在使用WSGI进行生产时(不在本地开发服务器上,也不在服务器开发服务器上)我得到一个(2003,“无法连接到[server.address]上的MySQL服务器([Errno 13] ]许可被拒绝)“)

我已将pymysql更新为pip上的最新版本。

我看到1.7.3纠正了WSGI中的一些安全问题,我试图降级到1.7.2(仅通过执行pip install django == 1.7.2(不确定这是好方法))问题是还在。

关于我可以尝试检查的任何想法?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为这与访问MySQL数据库的apache权限有关。你能尝试一下命令:

setsebool -P httpd_can_network_connect_db 1

使用-P选项可使更改持久化。如果没有此选项,则重启时布尔值将重置为0。