我正在使用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 –