2011-12-22 93 views
1

好的,我在這裏有一個非常愚蠢的問題,我開始變得非常不高興。無法連接到本地主機上的數據庫

就在幾分鐘前,我可以在本地主機上運行我的網站,沒有任何問題。它運行在與mySQL(一個Ubuntu盒子)相同的機器上的apache2中。

我改變了PHP的時區和文件上傳大小限制,然後重新啓動了Apache和MySQL。

現在,當我嘗試從服務器上的apache運行該站點時,它不能再選擇數據庫。據我所知,它實際上連接到mysql沒有問題,但是當我運行mysql_selectdb時,它不起作用。

如果我從我的筆記本電腦上運行這個網站,通過我的家庭網絡連接到它,它的工作原理完美無瑕。

我現在真的非常沮喪,因爲它在幾分鐘前就工作得很好。我甚至不記得更改任何mySQL設置。

有人可以幫我弄清楚這是怎麼發生的,以及如何解決它?我真的需要儘快完成這項工作。

編輯:這裏是我使用的連接代碼:

mysql_connect($serverUrl,'xx','xxx'); 
@mysql_selectdb('mydatabase') or die(mysql_error()); 

編輯2:當我使用root用戶登錄,它工作得很好。據我所知,我已經給我之前使用的用戶提供了root權限,但我想我可能是錯的。下面是我用在MySQL中給訪問命令:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; 
+1

當你試圖選擇你的數據庫時,你有任何錯誤嗎? – Cyclonecode 2011-12-22 09:10:48

+4

添加'或死(mysql_error());'到你的MySQL行的末尾並運行腳本。這應該指向正確的方向。 – Grexis 2011-12-22 09:10:57

+1

嘗試恢復您的php.ini到以前的設置,也許發佈一些代碼。另外selectdb返回什麼?是不是有任何錯誤拋出? – Viruzzo 2011-12-22 09:12:25

回答

1

我使用的用戶絕對不是「WWW的數據」。

我的猜測是,你正在使用的mysql_*功能建立連接前一個。這將使mySQL庫使用默認的登錄數據 - 在你的情況下,失敗。

查看錯誤消息的文件名和行號,看看它被觸發的位置。

+0

那麼在執行命令之前是否有某種方式來等待連接? – Jimmy 2011-12-22 09:24:57

+0

@Jimmy在執行任何命令之前只需進行連接。 – 2011-12-22 09:25:50

+0

我在我的問題中添加了一些代碼。這是關於事情的正確方法嗎?它看起來像我的代碼應該先連接。 – Jimmy 2011-12-22 09:27:28