PHP 5.6无法连接到MySQL服务器,bash连接工作

时间:2018-01-07 14:33:14

标签: php mysql

我已将服务器更改为新服务器,将文件复制到新服务器并设置配置后,使用PHP连接到MySQL时遇到问题。

我仍然可以使用Bash命令行或MySQL Workbench使用我的用户名和密码连接到我的数据库。我坚持了下来。有什么建议吗?

服务器ubuntu 16.04,Http服务器:Nginx

PHP版本:5.6

MySQL版本:5.7.20

我的PHP配置文件:

define("DB_HOST", "localhost");
define("DB_NAME", "zlproject");
define("DB_USER", "username");
define("DB_PASS", "password");
define("DB_PORT", "3306");

我的连接脚本:

public function connect() {

    if (!isset($this->connection)) {
        $this->connection = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";dbport=" . DB_PORT . ";charset=utf8", DB_USER, DB_PASS);
    }

    return $this->connection;
}
  

错误:未捕获的异常' PDOException'消息' SQLSTATE [HY000]   [1045]访问被拒绝用户'用户名' @' localhost' (使用密码:   YES)'

更新

我解决了我的问题,这对我来说是一个教训。我在配置文件中定义的密码包含$符号,因此我的一半存储密码被尝试读取为另一个变量而导致错误。

1 个答案:

答案 0 :(得分:0)

密码包含?登录我的php配置文件。

例如:

$

在这种情况下,服务器会将该密码读作define ("DB_PASS", "example$example"); +变量example

当尝试通过PHP连接而不是尝试使用bash命令行连接到MySQL服务器时,它会导致我出错。