【问题标题】:octobercms can't connect to DB; .env is fine and php artisan tinker / echo env('DB_*') outputs correct contentoctobercms 无法连接到数据库; .env 很好,php artisan tinker / echo env('DB_*') 输出正确的内容
【发布时间】:2021-04-25 13:06:26
【问题描述】:

我正在使用 OctoberCMS,并且使用 .env 文件中的数据库设置,我可以毫无问题地连接到数据库,并且我看到一个名为“mydatabase”的数据库。但是当我做php artisan tinkerDB::connection()->getPdo(); 时,我得到以下信息:

InvalidArgumentException with message 'Database (mydatabase) does not exist.'

当我执行 echo env('DB_HOST');echo env('DB_PORT'); 等(对于 DB_DATABASE、DB_USERNAME 和 DB_PASSWORD)时,一切看起来都很好。我可以使用 mysql CLI 命令连接这些参数。然而DB::connection()->getPdo(); 失败了。

有什么想法吗?

我正在运行 OctoberCMS 1.0.443。 tail -f /path/to/myproject/storage/logs/system.log 不返回任何内容(尽管可写)

【问题讨论】:

  • 错误是说名为mydatabase的数据库不存在。这并不是说连接设置错误,所以DB_HOSTDB_PORT 不是问题所在。如果你运行 CREATE SCHEMA mydatabase; 会起作用吗?
  • @apokryfos - 数据库存在。 SELECT SUM(TABLE_ROWS) FROM Information_schema.tables WHERE table_schema = 'mydatabase'; 表示大约有 1,300 行。我的公司在 prod 服务器上安装了正常工作的 OctoberCMS - 我正在尝试连接到连接到 prod 数据库的 OctoberCMS 的本地安装。我可以使用 mysql CLI 客户端很好地连接到它(正如我刚刚提供的 SQL 查询所演示的那样) - 我似乎无法使用 DB::connection()->getPdo()...

标签: php mysql laravel laravel-5 octobercms


【解决方案1】:

您确定您正确使用了 .env 文件吗?如果您的config/database.php 文件中没有对env() 的调用,则不会使用它。默认情况下,October 不使用 .env 文件,您要么必须自己将这些调用添加到配置文件中,要么必须运行 php artisan october:env 自动为您完成。

【讨论】:

    【解决方案2】:

    原来我的 .env 中没有设置 DB_DATABASE。我有所有其他 DB_* 值,但没有那个...

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 2020-01-01
      • 2017-12-07
      • 2021-03-04
      相关资源
      最近更新 更多