【问题标题】:Forge Laravel accessing database of another Forge ServerForge Laravel 访问另一个 Forge 服务器的数据库
【发布时间】:2020-02-26 16:09:00
【问题描述】:

我使用 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',
],

我填写了服务器 B 的凭据。然后我尝试运行使用连接的 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] 超时过期

我可以通过服务器 A 访问服务器 B:ssh forge@138.31.32.33。我可以访问该服务器 B。 但我仍然超时。我错过了什么?如何访问“外部”数据库?

【问题讨论】:

  • 你的项目运行良好吗?

标签: laravel laravel-forge


【解决方案1】:

您必须以这种方式在服务器 B 上设置数据库,以便可以从“外部”访问它。这可以在 mysql 中通过设置此 mysql 表和用户的权限来完成。请参阅 mysql 手册:

运行 phpMyAdmin 时,如果您对 db 具有 root 访问权限,则有一个部分用于此操作

我希望,这会引导你走上正确的道路;)

【讨论】:

  • 这是 PostgreSQL ;-)
  • @user1469734 可以肯定的是,您会通过这样的简单搜索找到一些东西:google.de/…
猜你喜欢
  • 2019-10-23
  • 2017-05-22
  • 2016-10-29
  • 1970-01-01
  • 2019-01-08
  • 2015-05-15
  • 2015-12-07
  • 1970-01-01
  • 2017-10-12
相关资源
最近更新 更多