Мы используем тариф "Профи", не удается подключится к базе данных через PDO.
тут (http://www.netangels.ru/support/mysql/) указано, что нужно использовать unix socket; путь до файла взят из phpinfo().
Следующий код выдает ошибку "SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES)":
<?php
try {
$dbh = new PDO('mysql:unix_socket=/var/run/mysqld/mysqld.sock;', 'root', 'password');
foreach($dbh->query('SELECT * from tablename') as $row) {
print_r($row);
}
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
При изменении пути до сокета выдается ошибка "Can't connect to local MySQL server through socket", следовательно система отвергает именно реквизиты подключения к БД. Пароль перепроверен несколько раз, в phpMyAdmin c ним заходит. дополнительное указание названия базы данных эффекта также не дает. В чем может быть проблема?
На тарифном плане "Профи" Вам предоставляется доступ к Вашему MySQL-серверу через сокет. Его расположение отличается от стандартного (файл /var/run/mysqld/mysqld.sock используется системным MySQL).
Вам необходимо использовать сокет: /home/LOGIN/tmp/mysql-socket, где LOGIN-Ваш логин на хостинге. Также эту информацию Вы можете найти в выводе phpinfo.