2015-10-05 48 views
2

似乎有一個相關的問題herelaravel /流明REST API間歇ingores env和使用「鍛造」數據庫

我有一個js前端交談管腔REST API。

我的前端可以最終做了很多每秒請求相同的端點。

比方說api/supplier/<ID>

大多數這些成功返回,但時間大約爲5%-10%的API返回類似的錯誤:

哎呦,看起來像出事了。

1/1 PDOException在Connector.php線50: SQLSTATE [HY000] [1044]拒絕訪問用戶 '' @ 'localhost' 的數據庫 '僞造'

這表明錯以某種方式使用數據庫配置。

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

但是從相關的MySQL節還有它看起來像一個用戶名「僞造」也將被設置如果這是使用,我的.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用PHP 5.6.8
  • 的Mysql 5.6.24
  • 流明5.1.3(Laravel Compnents 5.1 *)

我的問題是

  1. 這個'僞造'數據庫名稱是從哪裏來的?
  2. 我如何在那裏獲得真實的數據庫詳細信息?
  3. 我應該得到某種集中我的連接,看到可能有幾百個連接/秒或不laravel /流明已經照顧這?
+0

你有沒有搞清楚的實際問題?接受的答案是黑客。 – Anthony

+0

不是真的。它只發生在我的開發機器(xampp)上,即使它被配置爲不使用它(可能相關也可能不相關),但它也存在缺少memcache的問題。生產服務器(燈)沒有這些問題iirc。 – Loopo

回答

2

而不是覆蓋文件數據庫。在框架內你可以在你的項目的根目錄下創建一個config目錄,並在那裏創建一個你可以按你想要的方式修改的文件。 Lumen明白你想使用你自己的配置文件,而不是那個帶有默認框架的配置文件。

檢查取消註釋該行自舉/ app.php

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

這就是問題所在。我已經在根中的.env文件中定義了我的數據庫連接詳細信息,但似乎並沒有每次都應用。你的解決方案雖然運作良好你認爲這是流明中的錯誤嗎?如果沒有人能回答我的其他問題,我會很快接受你的回答。 – Loopo

+0

我認爲這不是Lumen的錯誤。現在再次考慮,您已取消註釋此行 Dotenv :: load(__ DIR __。'/ .. /'); 在bootstra/app.php –

+1

中,該行一直未被註釋。所以不是這樣。但是在config目錄中創建文件運行良好。 – Loopo