2010-09-03 113 views
3

我試圖連接到不同的機器:連接到不同的機器, '無法通過套接字連接' 錯誤

$this->_connection = new PDO("mysql: host=MYSQL_SERVER; dbname=MYSQL_DATABASE",MYSQL_USER, MYSQL_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 

但PDO barfs:

SQLSTATE [HY000] [ 2002]無法通過套接字「/var/lib/mysql/mysql.sock」(2)

連接到本地MySQL服務器僵硬,這工作得很好與本地主機我的dev的服務器上 - 我們的產品設置是LVS與單獨的數據庫服務器,但我似乎無法得到PDO連接到它!

哪裏有我在這裏搗亂了什麼?

編輯

這工作:

mysql_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASSWORD) or die(mysql_error()); 
mysql_select_db(MYSQL_DATABASE) or die(mysql_error());; 
echo 'Connected to database <br/>'; 

注意MYSQL_SERVER本地主機,它是我們的主數據庫服務器的IP。在我們的dev服務器上,託管dev數據庫的PDO完美地工作。

回答

1

這很簡單。你的DSN有缺陷。

使用此:

$this->_connection = new PDO("mysql:host=EXTERNAL_IP;dbname=DB", USERNAME, PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 

試試吧,報到。

+0

請原諒我,如果我是密集的,但我不明白這是什麼與我在我的問題中發佈的 – 2010-09-03 01:08:32

+0

我相信後的空間;意義重大。 – 2010-09-03 01:13:27

+1

哇。非常感謝 - 在過去的48周裏我已經睡了大約2個小時,你不知道我有多麼欣賞這樣一個簡單的解決方案。 :):D – 2010-09-03 01:20:45

相關問題