Intereting Posts
Как экспортировать и импортировать базу данных mysql с ее данными, используя php-скрипт? Как понизить Wampserver PHP и Apache? Как подсчитать красноречие отношения без проблемы N + 1 и загрузить всю модель? Проверьте, нравится ли пользователю фан-страница Условный запрос в elasticsearch PHP array_multisort не сортирует мой многомерный массив, как ожидалось MVC. Разве хорошо, что модель состоит из нескольких других моделей? Перенаправление на страницу и отправка пользовательских заголовков HTTP Преобразование простых текстовых URL в гиперссылки HTML в PHP Получить все строки на основе запроса в массив Скопировать изображение с удаленного сервера через HTTPS Что такое S и W в тестовом выходе PHPUnit? unserialize multiple array и echo, передавая более двух параметров методу arraycombine В PHP, как извлечь несколько адресов электронной почты из блока текста и поместить их в массив? Онлайн-проверка синтаксиса PHP / валидатор

Ошибка подключения к PHP: SQLSTATE Соединение отклонено

Ситуация такова, я пытаюсь использовать соединение PHP для подключения моей базы данных MySQL, которая находится на phpmyadmin. Ничего не связано с соединением, просто пытающимся выяснить, успешно ли установлено соединение. Я использую MAMP для размещения базы данных, соединение, которое я пытаюсь использовать, следующее:

<?php $servername = "127.0.0.1"; $username = "root"; $password = "root"; try { $conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?> 

Я использую postman для проверки, работает ли соединение, но я продолжаю получать это сообщение об ошибке:

Ошибка подключения: SQLSTATE [HY000] [2002] Соединение отказано

Прежде чем я получил сообщение об ошибке:

Ошибка соединения: SQLSTATE [HY000] [2002] Нет такого файла или каталога

Это было связано с тем, что я установил имя сервера на localhost, изменив его на IP-адрес, на который он отказал мне, и я не знаю, что не так.

Любая помощь в этом отношении была бы оценена, спасибо.

Я нашел причину, по которой соединение не работало, потому что соединение пыталось подключиться к порту 8888, когда ему нужно было подключиться к порту 8889.

 $conn = new PDO("mysql:host=$servername;port=8889;dbname=AppDatabase", $username, $password); 

Это устранило проблему, хотя изменение имени сервера на localhost по-прежнему дает ошибку.

Ошибка соединения: SQLSTATE [HY000] [2002] Нет такого файла или каталога

Но он успешно соединяется, когда IP-адрес вводится для имени сервера.

вы должны использовать

 'mysql:host='.$servername.';dbname=AppDatabase' 

вместо

 "mysql:host=$servername;dbname=AppDatabase" 

Мой самый первый ответ в stackoverflow, я считаю, что существует проблема из-за двойных кавычек в переменных и внутри PDO.