远程MySQL连接适用于cmdline,但不适用于Apache(Webpy,Mod-WSGI)

时间:2016-10-04 09:31:26

标签: python apache mod-wsgi mysql-python web.py

  • 服务器操作系统:红帽企业Linux服务器版本5.11
  • Apache:2.2.3
  • Python:2.7.6
  • Mod_WSGI 4.5.3,Web.Py,MySQLdb

喂!我创建了一个Web.Py站点,该站点查询来自远程Oracle数据库的数据,该数据库工作正常,但我在尝试从远程MySQL数据库创建用户身份验证时遇到了问题。

按照此处的步骤操作:http://webpy.org/cookbook/userauthpgsql

完全相同的程序可以从python命令行工作,但出于某种原因,当尝试从Apache连接到远程MySQL数据库时,我收到以下错误:

<type 'exceptions.AttributeError'> at /login
'module' object has no attribute 'connect'

我尝试的事情:

  1. 列表项
  2. 已停用SELinux
  3. 将apache @ myserversIP的权限添加到MySQL。
  4. 尝试过两个MySQLdb&amp;用于连接的web.database
  5. 谷歌搜索了很多。
  6. 这是从我的主程序运行的代码:

    myDB = MySQLdb.connect(host='ip',user='user',passwd='password',db='db',port=3306 );
    cHandler = myDB.cursor()
    cHandler.execute("SHOW TABLES;")
    results = cHandler.fetchall()
    for items in results:
    print items
    

    关于这个问题的任何帮助,或者进一步诊断它的方法都会受到很多赞赏!感谢

    Edit1:我检查了MySQLdb的搜索位置:/usr/local/lib/python2.7/site-packages
    这似乎是正确的。

    EDIT2:
        ldd mod_wsgi.so
        linux-vdso.so.1 =&gt; (0x00007fff4b5fd000)
        libpython2.7.so.1.0 =&gt; /lib64/libpython2.7.so.1.0
        libpthread.so.0 =&gt; /lib64/libpthread.so.0
        libdl.so.2 =&gt; /lib64/libdl.so.2
        libutil.so.1 =&gt; /lib64/libutil.so.1
        libm.so.6 =&gt; /lib64/libm.so.6
        libc.so.6 =&gt; /lib64/libc.so.6
        /lib64/ld-linux-x86-64.so.2

1 个答案:

答案 0 :(得分:0)

正如已评论过的那样,检查是否有一个文件与您尝试运行的文件位于同一目录中,该文件名为MySQLdb.py