【问题标题】:Laravel Multiple Database Connections not workingLaravel 多个数据库连接不起作用
【发布时间】: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


【解决方案1】:

看下面的配置,你必须为你的新数据库配置一切:

'database2' => [ 
  'driver' => 'mysql',
  'host' => env('DB_HOST2', 'HOST_IP'),
  'port' => env('DB_PORT2', 'HOST_PORT'), 
  'database' => env('DB_DATABASE2', 'DATABASE_NAME'), 
  'username' => env('DB_USERNAME2', 'USER_NAME'), 
  'password' => env('DB_PASSWORD2', 'PASSWORD'), 
  'unix_socket' => env('DB_SOCKET2', ''), 
  'charset' => 'utf8mb4', 
  'collation' => 'utf8mb4_unicode_ci', 
  'prefix' => '', 
  'strict' => false, 
  'engine' => null,
],

您需要更改HOST_IP,HOST_PORT,DATABASE_NAME,USER_NAME,PASSWORD的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2014-12-27
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2017-04-11
    • 2016-01-31
    相关资源
    最近更新 更多