2012-07-14 46 views
1

我正在使用MySQL-python軟件包。我能夠從命令行執行的MySQL相關的腳本,但是做同樣的通過瀏覽器(Apache的CGI)產生以下錯誤:未在CGI中執行的MySQL-python

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred. 
/var/www/html/temp.py in() 
9 
10 # Establich a connection 
11 db = MySQLdb.connection(host="127.0.0.1", user="root", passwd="", db="inserv") 
12 
13 # Run a MySQL query from Python and get the result set 
    db undefined, MySQLdb = <module 'MySQLdb' from 
    '/usr/lib64/python2.6/site-packages 
/MySQLdb/__init__.pyc'>, MySQLdb.connection = <type '_mysql.connection'>, 
host undefined, user undefined, passwd undefined 

<class '_mysql_exceptions.OperationalError'>: 
(2003, "Can't connect to MySQL server on '127.0.0.1' (13)") 
    args = (2003, "Can't connect to MySQL server on '127.0.0.1' (13)") 
    message = '' 

我一直停留在這種情況下,過去的幾天。通過基於php的站點發出的MySQL命令可以正確執行,我也可以通過命令行登錄到MySQL。這個問題似乎只與Python CGI有關。

我也試過與oursql包相同,似乎也有類似的問題。我該如何處理這種情況?

編輯
按@真正的答案我已經編輯我的代碼使用MySQLdb.connect()但問題依然存在,並回溯結尾:

2003, "Can't connect to MySQL server on '127.0.0.1' (13)" 

回答

1

您應該使用連接,未連接。 Mysqldb.connect()返回一個連接對象,但你似乎在調用mysqldb.connection()。有關如何操作的示例,請參閱The docs

+0

我已根據您的答案更改了我的代碼,但問題仍然存在。 (我已經更新了這個問題) – WeaklyTyped 2012-07-14 16:10:04

+1

也許看看MySQL日誌。我還會驗證MySQL確實正在監聽本地主機上的TCP端口。您的其他腳本可能使用UNIX套接字而不是TCP連接。 – 2012-07-14 16:14:24

+0

通過套接字(使用本地主機而不是127.0.0.1)連接的公平性足夠用於CGI腳本,但失敗時使用SqlALchemy'create_engine' – WeaklyTyped 2012-07-14 16:21:01