我已将服务器更改为新服务器,将文件复制到新服务器并设置配置后,使用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)'
更新
我解决了我的问题,这对我来说是一个教训。我在配置文件中定义的密码包含$
符号,因此我的一半存储密码被尝试读取为另一个变量而导致错误。
答案 0 :(得分:0)
密码包含?
登录我的php配置文件。
例如:
$
在这种情况下,服务器会将该密码读作define ("DB_PASS", "example$example");
+变量example
。
当尝试通过PHP连接而不是尝试使用bash命令行连接到MySQL服务器时,它会导致我出错。