PHP5.6可以';t连接到MySQL服务器,bash连接正常
我已经将我的服务器更改为一个新的服务器,在将文件复制到新服务器并设置配置后,我在使用PHP连接MySQL时遇到了问题 我仍然可以使用Bash命令行或MySQL工作台使用用户名和密码连接到数据库。我受够了。有什么建议吗 服务器ubuntu 16.04,Http服务器:Nginx PHP版本: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_
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
,然后键入密码及其工作方式如果您正在这样做的话一切正常,那么你就不应该出错。