Laravel PDOException SQLSTATE [HY000] [1045]在运行时突然发生

时间:2016-06-21 05:32:40

标签: mysql database exception pdo laravel-5.2

在我们的Laravel应用程序中,我们构建了一个安装程序,该安装程序要求用户提供数据库信息以运行我们的数据库迁移和浏览器。我们向用户询问的字段:

  • 数据库类型
  • 数据库名称
  • 数据库主机
  • 数据库用户
  • 数据库密码

我们在安装过程中将此值写入.env文件

DB_TYPE={value entered by user}
DB_HOST={value entered by user}
DB_PORT={value entered by user}
DB_DATABASE={value entered by user}
DB_USERNAME={value entered by user}
DB_PASSWORD={value entered by user}

在我们的database.php cofig文件中,我们正在从.env

中检索环境值

mysql的datatbase.php示例代码

'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',
            'port'      => env('DB_PORT', ''),
            'prefix'    => '',
            'strict'    => false,
        ],

我们在安装过程中没有遇到任何问题,并且数据库连接成功运行。但是在使用应用程序一段时间之后,这种PDOException会随机发生随机路由

  

SQLSTATE [HY000] [1045]拒绝访问用户' root' @' localhost' (使用密码:否)

     

SQLSTATE [28000] [1045]拒绝用户访问'伪造' @' localhost' (使用密码:否)

请告诉我可能的原因是什么,以及我们如何解决这个问题。

TIA

0 个答案:

没有答案