laravel / lumen REST API间歇性地进入env并使用'伪造'数据库

时间:2015-10-05 13:55:47

标签: rest laravel-5 lumen

似乎有一个相关问题here

我有一个js前端与流明REST API交谈。

我的前端最终可以每秒向同一个端点做很多请求。

让我们说api/supplier/<ID>

其中大部分都成功返回,但大约有5%-10%的时间API返回错误,如:

  

糟糕,看起来出了问题。

     

1/1   Connector.php第50行中的PDOException:   SQLSTATE [HY000] [1044]拒绝访问用户&#39;&#39; localhost&#39;到数据库&#39; forge&#39;

这表示正在以某种方式使用错误的数据库配置。

代码中唯一可以找到字符串'forge'(包括引号)的地方是在 ...\vendor\laravel\lumen-framework\config\database.php

然而,从相关的mysql部分看,它看起来像一个用户名&#39;伪造&#39;如果使用它也会被设置,并且我的.env被忽略。

'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'port'      => env('DB_PORT', 3306),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => env('DB_PREFIX', ''),
        'timezone'  => env('DB_TIMEZONE','+00:00'),
        'strict'    => false,
    ],

如果我直接从浏览器请求它们,我就不会收到任何错误。

问题似乎与请求频率有关,更多请求/秒=更多错误 如果我重新加载页面,错误将出现在不同的项目上。

如果我用我的值(数据库/用户名/密码/前缀)覆盖上面的/vendor/.../config/database.php,那我就不会有任何错误,但这不是正确的方法并让我怀疑某处有一个错误。

环境:

  • Windows 8
  • XAMPP 5.6.8 with PHP 5.6.8
  • Mysql 5.6.24
  • Lumen 5.1.3(Laravel Compnents 5.1。*)

我的问题是

  1. 这是什么&#39;锻造&#39;数据库名称来自间歇性的?
  2. 如何随时获取我的真实数据库详细信息?
  3. 我应该以某种方式汇集我的联系,因为可能有数百个连接/秒或laravel /流明已经处理过这个?

1 个答案:

答案 0 :(得分:2)

不是覆盖框架内的文件database.php,而是可以在项目的根目录上创建一个config目录,然后在database.php中创建一个文件,您可以根据需要修改该文件。 Lumen明白你想要使用你自己的配置文件而不是那个带来默认框架的文件。

检查是否在bootstrap / app.php中取消注释此行

Dotenv::load(__DIR__.'/../');