2016-02-24 2 views
-1

Это db.php IM USING Cloud9, как мой хозяинПредупреждение: mysqli_connect(): php_network_getaddresses: getaddrinfo не удалось: Имя или служба не известны

function getDB() { 
$dbhost="paralphdigm-vtms-2622120"; 
$dbuser="paralphdigm"; 
$dbpass=""; 
$dbname="vtms_db"; 
$port = 3306; 
$dbConnection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
return $dbConnection; 

}

Я отредактировал мой код для этого сейчас *

Heres ошибка сообщение Фатальная ошибка: Uncaught исключение 'PDOException' с сообщением 'SQLSTATE [HY000] [2002] в соединении отказано' в /home/ubuntu/workspace/db.php на линии 8

+0

Похоже, что он не может разрешить домен. Работает ли getDB, или он терпит неудачу с тем же сообщением? – aynber

+1

Вы смешиваете API MySQL, вот почему. –

+0

где определены '$ dbhost' и т. Д.? – fusion3k

ответ

5

php_network_getaddresses: getaddrinfo failed: Name or service not known

В нетехнических словах это сообщение об ошибке означает: «Я не знаю адрес сервера».

В технические слова, это означает, что имя хоста, к которому вы пытаетесь подключиться, не имеет записи общедоступного имени.

Сервер базы данных доступен только с нескольких определенных серверов, в качестве функции защиты , чтобы предотвратить доступ всего мира. Поэтому не каждый может попытаться взломать или перегрузить (DoS)!

Хост, которому разрешено подключаться к серверу базы данных, может быть, скорее всего, сервер, на который вы загружаете файлы html/php/...

Хотя вы смешиваете PDO, MySQLi и mysql, что плохо, ошибка вызвана сетевыми вещами, а не путем программирования ошибок.


Вопрос полностью изменился после редактирования.

«Соединение отказано» означает, что ваш хост знает адрес и может связаться с сервером базы данных, но ему не разрешено подключаться. Это относится к той же ситуации, что и раньше, ваш хост «находится в другом районе», который до сих пор не «дружит» с db.

+1

Незначительное разъяснение в случае, если читателю это непонятно. FTP - это способ, с помощью которого сервер имеет файлы, отправленные на него, но это не является причиной того, что сервер базы данных не отображается за пределами хоста. – halfer

+0

@halfer Я поменял свой ответ соответственно, надеюсь, что он делает вещи еще более ясными. – DanFromGermany

+1

Это здорово, спасибо Дэн! Уже утвержден. (Кроме того: я надеюсь, что сервер базы данных брандмауэрирован из Интернета, и они не просто используют отсутствие публичного DNS в качестве функции безопасности. В противном случае люди смогут редактировать свои собственные файлы хостов и подключаться к серверу базы данных из вне локальной сети хоста ...) – halfer

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

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