我正在使用laravel 5.我需要從遠程MySQL數據庫獲取一些數據。遠程MySQL數據庫連接Laravel 5不能正常工作
我已經在config/database.php中建立了我的數據庫連接。 這是它的外觀:
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'remotemysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '************'),
'database' => env('DB_DATABASE', 'osys'),
'username' => env('DB_USERNAME', 'Syn'),
'password' => env('DB_PASSWORD', '****************'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
],
連接信息是正確的,我已經測試了它,我能夠連接到遠程數據庫。
爲了測試它,我只是提取了數據庫連接和我的控制器中的數據,將它發送到視圖以檢查一切是否正常工作。這是我的控制器:
...
use DB;
...
public function item()
{
$items = DB::connection('remotemysql')
->table('ip_products')
->get();
return view('admin.item', compact('items'));
}
,這是我的看法:
...
<tbody>
@foreach ($items as $item)
<tr>
<td>{{$item->id}}</td>
</tr>
@endforeach
</tbody>
...
當我嘗試加載我的看法,我收到此錯誤信息:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'dvs.ip_products' >doesn't exist (SQL: select * from
ip_products
)
錯誤表明我Laravel試圖從表格中獲得dvs數據庫(這是主要的網站數據庫)。所以它沒有使用連接'remotemysql'。如果它不能連接到遠程數據庫,它會得到一個連接錯誤,但我認爲它根本不使用遠程連接。
我能做些什麼來解決這個問題?
看看'在您的應用程序(的根文件夾.env'文件: – num8er
的東西,在你的.ENV文件將始終覆蓋你的配置 – Taacoo
@Taacoo所以,如果我刪除。憑證超出我的.env,只是把它放在database.php它應該工作? 我不會破壞它嗎?:P –