2012-11-20 112 views
0

我使用PHP和MySQL進行數據庫連接連接數據庫服務器,問題是:不能使用IP地址

在我的本地機器上的Web應用程序項目,當我試圖連接到數據庫的遠程服務器的每一件事情是做工精細

mysql_connect("x.xx.xx.x","username","password") or die(mysql_error()); 

當我部署有mysql數據庫,並嘗試使用該Web應用程序我沒有得到任何數據庫錯誤連接的遠程服務器上的Web應用程序!如果我改變數據庫連接:使用而不是使用IP地址不斷事情做工精細本地主機(127.0.0.1)

mysql_connect("localhost","username","password") or die(mysql_error()); 

,我已經試過檢查/etc/my.conf文件,並添加綁定地址= 192.168。 15.15並重新啓動mysql服務器 仍然無法連接到數據庫
任何想法!

+0

192.168.15.15,是遠程服務器 –

+3

請不要使用'mysql_ *'功能,因爲它們是在[折舊過程(HTTP的IP地址://新聞.php.net/php.internals/53799)。改爲使用[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php),[be一個更好的PHP開發人員](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 –

回答

1

您需要檢查兩件事。首先,確保端口3306已打開以進行連接。其次,如果你要遠程連接,你需要創建一個通配符用戶(主機將是一個百分號%)。看看mysql.user表。如果您嘗試連接的用戶有Hostlocalhost,則無法遠程連接。

要創建一個新用戶:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

給該用戶的權限,我建議只在數據庫中的問題:

GRANT ALL PRIVILEGES ON your_database.* TO 'newuser'@'%'; 

最後,重新加載權限:

FLUSH PRIVILEGES; 
+0

正如我所說我能夠通過我的本地機器連接到遠程服務器,在同一臺服務器上部署wep應用程序後,我無法連接到數據庫(這是在同一臺服務器),而我使用的IP地址,當我使用(本地主機)每件事情都很好,好吧,iahve創建用戶,因爲你說的仍然是同樣的問題! –

0

問題是我啓用了SElinux,所以即nabled httpd的網絡commad:

setsebool -P httpd_can_network_connect=1