2009-11-08 52 views
3

好吧,這將是一個長期的問題。無法連接到MySQL使用Bitnami燈棧通過php

我試圖讓我的大學帳戶上運行一些東西。我們有一個public_html文件夾,我們可以使用它作爲網頁空間來託管我們想要的任何東西。

我已經在public_html文件夾中安裝了Bitnami燈棧(可能不是最好的主意,安全方面,但我只會測試這個應用程序幾天並拉下來,所以我真的不' (我的帳戶名/ public_html/lamp/apache2/htdocs /我的帳戶名)/我想要託管的站點工作正常並且可以訪問(http://(uni address)/ (等)但是,連接到DATABSE代碼的某些部分給了我以下警告:

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

我用下面的代碼連接到數據庫:

mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass); 

其中dbhost是'localhost'。

由於它引用了/var/run/mysqld/mysqld.sock - 它顯然意味着它試圖連接到錯誤的東西,因爲我已經安裝的燈棧中的mysql在my.cnf中具有以下內容:

[mysqladmin] 
user=root 

[mysqld] 
basedir=(my account folder)/public_html/lamp/mysql 
datadir=(my account folder)/public_html/lamp/mysql/data 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 
tmpdir=(my account folder)/public_html/lamp/mysql/tmp 

[mysqld_safe] 
mysqld=mysqld.bin 

[client] 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 

[manager] 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 
pid-file=(my account folder)/public_html/lamp/mysql/tmp/manager.pid 
default-mysqld-path=(my account folder)/public_html/lamp/mysql/bin/mysqld.bin 

所以我的問題是,任何人都知道如何讓它連接到正確的套接字?此外,var/run/mysqld/mysqld.sock根本不存在,我顯然沒有創建它的權限(並不是說我看到它如何滿足我的目的)。

從昨天開始,這一直困擾着我。任何幫助將不勝感激。

乾杯!

回答

1

您可能必須指定使用mysql_connect在my.cnf中定義的插座(你應該可以看到例如3#功能expample)通過使$ CFG-> DBHOST指向套接字文件,而不是本地主機

$CFG->dbhost = ':(my account folder)/public_html/lamp/mysql/tmp/mysql.sock'; 
$link = mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass); 

看看是否有用!

諮詢的另一個字,你也應該確保實際上是由於在該場所「(我的賬戶文件夾)/public_html/lamp/mysql/tmp/mysql.sock」

你的MySQL服務創建的套接字文件

編輯:

我們只需要確認的路徑,你的mysql襪子文件是有效的並且文件被創建,它似乎是。

您還可以確認您是否可以通過命令行手動連接到mysql服務器,這將是幫助診斷的另一個好的步驟。

mysql --socket=<my account folder>/public_html/lamp/mysql/tmp/mysql.sock -u <username> -p 

編輯2:

只是一個快速的確認,當你正在替換您在上面的例子中佔的文件夾,你正在使用你的文件的完整路徑。

例如

/home/<username>/public_html/lamp/mysql/tmp/mysql.sock 
+0

如何檢查文件是否由我的mysql服務創建?我假設它是因爲它是在安裝bitnami燈棧之後創建的。 另外,我嘗試了示例#3。它給了我同樣的警告,我仔細檢查了mysql.sock的位置,它絕對存在,我允許完全訪問它。 再次感謝 – MikiRei 2009-11-08 07:45:37

+0

是的。如果我使用「/ home/」,我已經嘗試了「/ home/」和全路徑文件,以防萬一它不能正確重定向。 – MikiRei 2009-11-08 08:29:37

+0

你是否設法通過命令行連接到mysql服務器? – houmam 2009-11-08 08:41:25