Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP5.6可以';t连接到MySQL服务器,bash连接正常_Php_Mysql - Fatal编程技术网

PHP5.6可以';t连接到MySQL服务器,bash连接正常

PHP5.6可以';t连接到MySQL服务器,bash连接正常,php,mysql,Php,Mysql,我已经将我的服务器更改为一个新的服务器,在将文件复制到新服务器并设置配置后,我在使用PHP连接MySQL时遇到了问题 我仍然可以使用Bash命令行或MySQL工作台使用用户名和密码连接到数据库。我受够了。有什么建议吗 服务器ubuntu 16.04,Http服务器:Nginx PHP版本:5.6 MySQL版本:5.7.20 我的PHP配置文件: define("DB_HOST", "localhost"); define("DB_NAME", "zlproject"); define("DB_

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

我仍然可以使用Bash命令行或MySQL工作台使用用户名和密码连接到数据库。我受够了。有什么建议吗

服务器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]拒绝用户“用户名”@“本地主机”的访问(使用密码: 是的

更新


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

密码包含
$
在我的php配置文件中签名

例如:

define(“DB_PASS”,“example$example”)

在这种情况下,服务器将以
example
+变量
$example
的形式读取该密码


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

你确定,你提供了正确的用户名和密码吗???@Ravi是,我试图通过bash命令行和mysql workbench使用相同的用户名和密码进行连接,并且工作正常。您可以发布bash的屏幕截图,在其中传递相同的用户名和密码吗?@Ravi Im使用putty连接到我的VPS服务器,然后我键入
mysql-u username-p
,然后键入密码及其工作方式如果您正在这样做的话一切正常,那么你就不应该出错。