Laravel подключается к удаленной базе данных MySQL - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь подключиться к моей удаленной базе данных mysql ( infinityfree.net ) в моем приложении Laravel ( Версия 5.6 ).Это моя конфигурация в файле database.php :

'mysql' => [
        'driver' => 'mysql',
        'host' => 'sql201.epizy.com',
        'database' => 'epiz_22148680_LaravelHospital',
        'username' => 'epiz_22148680',
        'password' => 'Vxp7****R1k6',
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
    ],

Я также изменил файл .env :

DB_CONNECTION=mysql
DB_HOST=sql201.epizy.com
DB_PORT=3306
DB_DATABASE=epiz_22148680_LaravelHospital
DB_USERNAME=epiz_22148680
DB_PASSWORD=Vxp7****R1k6

Однако,когда я пытаюсь подключиться к своей базе данных, я получаю эту ошибку:

PDOException: :( "SQLSTATE [HY000] [2002] Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом после периода временивремя или установленное соединение не удалось, потому что подключенный хост не смог ответить.

Я видел это сообщение и это , но они не получили ответа.

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Это означает, что от удаленного хоста не было получено никакого ответа (положительного или отрицательного) при попытке соединения TCP.Одна из причин, по которой это может произойти, заключается в том, что брандмауэр блокирует ответ от сервера.Другая причина в том, что имя хоста неверно.Это также может означать, что существует (временная) проблема с сервером (или каким-либо маршрутизатором по пути).Вы можете попробовать выполнить трассировку, чтобы определить, верно ли это.

Решение

Убедитесь, что имя хоста указано правильно. Разблокируйте SmartFTP в программном брандмауэре и антивирусном продукте.Проверьте, есть ли временная проблема с сервером

. Вы должны выяснить, получил ли хост реальный ip. Если ip не статичен, тогда соединение не может быть установлено.попробуйте

php artisan config:cache

, если вы используете docker или любую другую подобную службу, перезагрузите контейнер и попробуйте снова, а также убедитесь, что хост использует тот же MySQL (3306) por В этом случае это может быть другой порт.

0 голосов
/ 28 мая 2018

Смотрите, библиотеки php-mysql установлены?

смотрите php -m, для просмотра модулей.

Достаточно просто установить .env для connecto для db

...