Ответ 1
Обычно это происходит, когда разрешение имен не работает на хосте. Если ваш целевой пункт назначения всегда один и тот же, вы можете использовать его IP-адрес для подключения.
При попытке подключиться к моему серверу базы данных я столкнулся с проблемой неизвестного хоста:
Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2005): Unknown MySQL server host 'xxxxxxxxxxxxx:port' in index.php on line 18
строка 18 - это строка, в которой я пытаюсь запросить соединение с сервером MySQL:
$this->db = new mysqli($db_host, $db_user, $db_psw, $db_name);
Я размещаю свою базу данных на веб-хостинге 1 & 1.
Обычно это происходит, когда разрешение имен не работает на хосте. Если ваш целевой пункт назначения всегда один и тот же, вы можете использовать его IP-адрес для подключения.
Если вы используете этот код:
$Mysqli= new mysqli('mysql2.servidoreswindows.net:3306',
'usu', 'pass', 'dbname');
вы можете попытаться записать хост без порта
То есть:
$Mysqli= new mysqli('mysql2.servidoreswindows.net', 'usu', 'pass', 'dbname');
Обратите внимание на группы безопасности AWS:
В моем случае я могу подключиться к RDS с моего компьютера, выбросив Telnet и Я могу подключить также Mysql Workbench, но я не могу подключиться от мой экземпляр EC2, который находится в пределах того же VPC, что и RDS.
Решение:
1. Я создал группу безопасности (exampl1) для RDS и назначен ей.
2. Я создал группу безопасности (exampl2) для EC2 и назначен ей.
и я назначил группу безопасности RDS (пример 1) для EC2. < < это меня спасает.
Информация: Если ваш EC2 назначил две или более группы безопасности, то в группе входящей службы безопасности RDS необходимо создать правила, так как многие группы безопасности назначили ваш EC2.
Amazon docs говорит:
Экземпляр EC2 в VPC использует одну и ту же группу безопасности VPC с экземпляром DB. http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html
Я весь день искал документы.
Надеюсь, это поможет вам.
Я знаю, что это старый вопрос. Но сегодня я столкнулся с этой проблемой, и ни один из ответов, которые я нашел, не был правильным.
В моем случае проблема заключалась в том, что порт 3306 не открыт на нашем брандмауэре, и я пытался подключиться к внутренней базе данных mysql с внешнего сервера.
Я не уверен, почему ошибка, которую он дает вам, это "Неизвестный хост" в этом случае. Я бы ожидал чего-то большего, чем "Невозможно подключиться". или "Соединение отказано", но с использованием того же самого кода с внутреннего сервера работал отлично, что привело меня к такому выводу.
Убедитесь, что вы не включаете часть "http://". Я использовал http://example.com
в моем .env
файле. Когда я оставил его как example.com
, он работал.