2010-09-03 3 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] не удается подключиться к локальному серверу MySQL через гнездо «/var/lib/mysql/mysql.sock» (2)

возмутительно, это работало хорошо с локальным хостом на моем Dev сервере - наша установка производства является LVS с отдельный сервер БД, хотя я не могу заставить PDO подключиться к нему!

Где, о, где я испортил, что здесь?

Edit:

Это работает:

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

Простите меня, если я плотный, но я не понимаю, как это отличается от того, что я опубликовал в своем вопросе. –

+0

Я считаю, что пространство после; быть значительным. –

+1

Ничего себе. Большое спасибо - у меня было около 2 часов сна в последних 48, вы не можете знать, насколько я ценю такое простое решение. :): D –

Смежные вопросы