远程MySQL连接可以通过cmdline进行,但不能与Apache(Webpy、Mod WSGI)进行连接


  • 服务器操作系统:Red Hat Enterprise Linux Server 5.11版
  • Apache:2.2.3
  • Python:2.7.6
  • Mod_WSGI 4.5.3、Web.Py、MySQLdb

嘿!我创建了一个从远程Oracle数据库查询数据的Web.Py网站,它运行得很好,但我现在在尝试从远程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&连接的web.database
  5. 谷歌搜索了很多

这是从我的主程序运行的代码:

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

如有任何关于该问题的帮助,或进一步诊断的方法,我们将不胜感激!感谢

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

第2版:
ldd mod_wsgi.so
linux vdso.so.1=>(0x00007fff4b5fd000(
libpython2.7.so.1.0=>/lib64/libpython2.7.so.1.0
libpthread.so.0=>/lib64/libphread.so.0
libdl.so.2=>/lib64/libdl.so.2
libutil.so.1=>/lib64/libute.so.1
libm.so.6=>/lib64/libm.so.6
libc.so.6=>/lib64/libc.so.6
/lib64/ld-linux-x86-64.so.2

如有评论,请检查是否有一个文件与您尝试运行的文件位于同一目录中,其名称为MySQLdb.py

最新更新