2013-11-21 62 views
0

我有一個連接到數據庫(phpmyadmin)的問題,它只是因爲我的服務器在UNIX套接字中。我不知道如何連接到它(我站在窗口)。下面的代碼工作正常,如果我的服務器在TCP/IP。服務器在Unix套接字中時如何連接數據庫?

我的代碼

<?php 

define('DB_SERVER', 'localhost'); 
define('DB_USERNAME', 'root'); 
define('DB_PASSWORD', 'xxxxxx'); 
define('DB_DATABASE', 'sample_db'); 
$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error()); 
$database = mysql_select_db(DB_DATABASE, $connection) or die(mysql_error()); 
mysql_set_charset("utf8", $connection); 

?> 

誰能告訴我如何連接到數據庫,如果服務器是在UNIX插座?

預先提前感謝

回答

0

只需刪除本地主機。

define('DB_SERVER', ''); 

或者:

$connection = mysql_connect(DB_USERNAME, DB_PASSWORD) or die(mysql_error()) 
+0

它不工作:( – user2738520

+0

它給你任何類型的錯誤?你可以使用控制檯連接到數據庫? –

1

hostname + : + /path/to/socket需要

代碼片段從http://us2.php.net/function.mysql-connect

$link = mysql_connect('localhost:/path/to/socket', 'mysql_user', 'mysql_password'); 

你的情況

define('DB_SERVER', 'localhost:/path/to/socket'); 

僅供參考,如果你想TCP套接字

$link = mysql_connect('hostname:port', 'mysql_user', 'mysql_password'); 
+1

不會與Unix套接字 –

+0

@LorenzoMarcon由於數據庫連接的工作,我更新 –

+0

當我嘗試使用它時,它說:無法通過套接字'/ path/to/socket'連接到本地MySQL服務器(2) – user2738520

0

在Unix中,你也可以在相同的方式連接到服務器

 $con = mysql_connect("host","username","password to connect toserver") or die("!server); 
    $db = mysql_select_db("yourdatabase",$con) or die("!db"); 
1

我有點迷茫你的問題。

我的立場上窗口

你的意思是你的PHP代碼是MS Windows中的機器上運行?

我的服務器是在UNIX

如果數據庫服務器和數據庫客戶端(PHP)在不同的機器上運行,則它們無法通過Unix文件系統的套接字通信。

下面的代碼工作正常,如果我的服務器在TCP/IP。

不,您的解釋或事件描述不正確。如果您在libmysql客戶端(包括PHP的mysql_擴展名)中指定'localhost'作爲目標主機,則客戶端將嘗試通過(Unix)文件系統套接字進行連接。 OTOH。如果你指定127.0.0.1,它將使用TCP套接字。

在前一種情況下,客戶端從〜/ .my.cnf或者沒有該文件/etc/my.cnf的地方獲取套接字的路徑,或者如果您自己編譯了客戶端庫, $ PREFIX的/ etc /我的。CNF

+0

對不清楚的問題抱歉,我不確定我真正要問的是什麼問題。在點服務器上打開phpmyadmin(本地計算機)時,它說:服務器:通過TCP/IP的本地主機。但是,當我打開phpmyadmin(託管),在點服務器上,它說:服務器:本地主機通過UNIX套接字。然後我上面的代碼不能通過UNIX套接字應用到Server:Localhost。 – user2738520

+0

我認爲問題在於你沒有提供正確的套接字。您的服務提供商應該能夠提供這些信息。 – symcbean

相關問題