【发布时间】:2017-10-11 18:35:54
【问题描述】:
我在 Laravel 开发中使用了超过 1 个数据库连接,但它没有获得正确的信息;
/config/database.php
'connections' => [
'database' => [
'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' => '',
'strict' => true,
'engine' => null,
],
'database2' => [
'driver' => 'mysql',
'host' => env('DB2_HOST', 'localhost'),
'port' => env('DB2_PORT', '3306'),
'database' => env('DB2_DATABASE', 'forge'),
'username' => env('DB2_USERNAME', 'forge'),
'password' => env('DB2_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
]
],
在我的控制器中
$result = DB::connection('database2')->table('mytable')->select('*')->get();
我收到错误响应;
SQLSTATE[HY000] [1045] 用户 'user'@'000.000.000.000' 的访问被拒绝(使用密码:YES)
但它显示的 IP 地址是用于“数据库”的,即使我正在尝试连接到“数据库 2”
【问题讨论】:
-
看起来用户“用户”不允许从该主机访问。您可以通过查询来检查:
SHOW GRANTS user -
感谢您的评论,原因是我试图连接到 database2 但它正在使用数据库信息。数据库被锁定,只能使用 ssh 访问,database2 已打开
-
你的 .env 是什么样的?你确定 DB2 与 DB 不同吗?
-
检查 .env 文件中的 DB2_HOST DB2* 变量,同时确保清除缓存
php artisan config:clear
标签: php mysql laravel laravel-5