连接失败:SQLSTATE[HY000][1045] Access denied for 'username'@'localhost'(user password:YES) 我正在尝试使用 PDO 连

Posted

技术标签:

【中文标题】连接失败:SQLSTATE[HY000][1045] Access denied for \'username\'@\'localhost\'(user password:YES) 我正在尝试使用 PDO 连接 php 和我的 sql【英文标题】:connection failed: SQLSTATE[HY000][1045] Access denied for 'username'@'localhost'(user password:YES) I am trying to connect php and my sql with PDO连接失败:SQLSTATE[HY000][1045] Access denied for 'username'@'localhost'(user password:YES) 我正在尝试使用 PDO 连接 php 和我的 sql 【发布时间】:2022-01-10 10:52:59 【问题描述】:
        $servername= "localhost"; 
        $username = "username"; 
        $password = "password"; 
        try  
            $conn = new PDO("mysql:host=$servername;dbname=testing",$username, $password);      
            //set the PDO error mode exception    
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
            echo "connected successfully";
         catch(PDOException $e) 
            echo " connection failed: " . $e->getMessage();
        

【问题讨论】:

【参考方案1】:

通过命令行检查您是否可以连接到您的数据库: https://dev.mysql.com/doc/refman/8.0/en/connecting.html

mysql --host=localhost --user=myname --password=password mydb

我相信您不知道访问数据库的凭据...您是如何安装 MySQL 数据库的?

【讨论】:

我是初学者。我正在使用 phpmyadmin phpmyadmin 中有 localhost:13306 和 mysqlworkbench 中有 localhost:13308。这会影响吗?如果这样,我如何将 workbwnch 13306 更改为 13308?【参考方案2】:

请检查是否:

用户名username 的用户确实存在。默认 Mysql 安装的标准用户名是root,而不是usernameusername 的用户拥有密码password。在默认的 MYsql 安装中,用户 root 没有设置密码。

【讨论】:

通过将用户名更改为root和空白密码,同样的错误

以上是关于连接失败:SQLSTATE[HY000][1045] Access denied for 'username'@'localhost'(user password:YES) 我正在尝试使用 PDO 连的主要内容,如果未能解决你的问题,请参考以下文章

MySQL + Laravel:SQLSTATE [HY000] [1045] 用户'so'@'localhost'的访问被拒绝,但连接数据正常并且配置缓存被清除

CPanel SQLSTATE[HY000] [1045] 拒绝用户访问

SQLSTATE[HY000] [1045] 'user'@'localhost' 的访问被拒绝(使用密码:YES)

XAMPP SQLSTATE[HY000] [1045]

意外异常:SQLSTATE[HY000] [1045] 用户 ****@'localhost' 的访问被拒绝(使用密码:YES)

(“SQLSTATE [HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:NO)”)