Forge Laravel получает доступ к базе данных другого Forge Server - PullRequest
0 голосов
/ 31 октября 2019

Я подготовил два сервера с помощью Laravel Forge. Я запускаю приложение на сервере A и хочу получить доступ к базе данных, которая находится на сервере B.

Итак, я настроил свою базу данных следующим образом:

'pgsql' => [
    'driver' => 'pgsql',
    'host' => env('EXTERNAL_DB_HOST', '138.31.32.33'),
    'database' => env('EXTERNAL_DB_DATABASE', 'forge'),
    'username' => env('EXTERNAL_DB_USERNAME', 'forge'),
    'password' => env('EXTERNAL_DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
    'schema' => 'public',
],

Я ввел учетные данныеСервер Б. Затем я пытаюсь запустить Tinker, который использует Соединение:

>>>  $d = \App\Foobar::first();
Illuminate/Database/QueryException with message 'SQLSTATE[08006] [7] timeout expired (SQL: select * from "foobars" where "foobars"."deleted_at" is null limit 1)'

. Выдает ошибку:

SQLSTATE [08006] [7] истекло время ожидания

Я могу получить доступ к Серверу B через Сервер A: ssh forge@138.31.32.33. Я получил доступ к этому Серверу B. Но я все еще получаю тайм-аут. Что мне не хватает? Как я могу получить доступ к "внешней" базе данных?

1 Ответ

0 голосов
/ 31 октября 2019

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

При запуске phpMyAdmin для этого есть раздел, если у вас есть root-доступ к db

Надеюсь, это приведет вас в правильном направлении;)

...