Не удалось подключиться к серверу MySQL с использованием PDO

У меня есть PHP-скрипт, который я использую для подключения к базе данных MySQL. Соединение через mysql_connect работает отлично, но при попытке с PDO я получаю следующую ошибку:

SQLSTATE[HY000] [2005] Unknown MySQL server host 'hostname' (3) 

код, который я использую для подключения, приведен ниже:

  <?php ini_set('display_errors', 1); error_reporting(E_ALL); $hostname_localhost ="hostname"; $database_localhost ="dbname"; $username_localhost ="user"; $password_localhost ="pass"; $user = $_GET['user']; $pass = $_GET['pass']; try{ $dbh = new PDO("mysql:host=$hostname_localhost;dbname=$database_localhost",$username_localhost,$password_localhost); echo 'Connected to DB'; $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $dbh->prepare("SELECT check_user_company(:user,:pass)"); $stmt = $dbh->bindParam(':user',$user,PDO::PARAM_STR, 16); $stmt = $dbh->bindParam(':pass',$pass,PDO::PARAM_STR, 32); $stmt->execute(); $result = $stmt->fetchAll(); foreach($result as $row) { echo $row['company_id'].'<br />'; } $dbh = null; } catch(PDOException $e) { echo $e->getMessage(); } ?> 

заранее спасибо

Solutions Collecting From Web of "Не удалось подключиться к серверу MySQL с использованием PDO"

У вас такая же проблема. Мое решение было другим портом базы данных. Я написал localhost: 1234 и получил эту ошибку.

Исправлено:

 mysql:host=$hostname_localhost;port=1234;dbname=$database_localhost",$username_localhost,$password_localhost); echo 'Connected to DB'; 

Это кажется довольно простым, вот что я использую для создания своих PDO-коннекторов (заметили, что ваши dbname и хост выполняются иначе, чем мои, не знаю, если это актуально, но стоит проверить):

Функция создания PDO

 require_once('config.inc.php'); function buildDBConnector(){ $dsn = 'mysql:dbname='.C_BASE.';host='.C_HOST; $dbh = new PDO($dsn, C_USER, C_PASS); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $dbh; } 

config.inc.php

 define('C_HOST','localhost');// MySQL host name (usually:localhost) define('C_USER','sweetUsername');// MySQL username define('C_PASS','sweetPassword');// MySQL password define('C_BASE','superGreatDatabase');// MySQL database 

И хотя это не имеет смысла, когда я пытался объявить newPDO $dsn inline, включая переменные во время вызова newPDO , я продолжал получать сбои. Я разделил его на части и использовал переменную $ dsn для этого. И с тех пор у них не было проблемы.

Интересно, если вы случайно участвуете в совместном хостинге?

ПРИМЕЧАНИЕ. Если у вас нет выделенного IP-адреса и вместо этого выполняется NAT, ваш IP-адрес не будет правильно переводиться на ваш настоящий сервер.

Это поможет вообще?

ОБНОВЛЕНИЕ: Просто подумал о другом. Вы пытаетесь подключиться к базе данных mysql, которая находится на другом IP-адресе, чем вы используете ваши скрипты? Если это так, вам, скорее всего, нужно будет включить доступ к удаленному сайту для ip, из которого вы вызываете базу данных. Довольно легко сделать, но CRITICAL, если вы не получаете доступ к localhost.

Кажется, вы не указали детали или данные IP-адреса узла базы данных. Добавление этого решения проблемы