PHP中MySQL访问被拒绝,CLI将连接

PHP中MySQL访问被拒绝,CLI将连接,php,mysql,iis-7,Php,Mysql,Iis 7,起初我试着用PHP连接PDO。但是,我收到拒绝访问的消息。我可以使用完全相同的命令连接到命令行界面,但php从PDO中给出了以下错误: 致命错误:在C:\inetpub\wwwroot\index.php:3堆栈跟踪:#0 C:\inetpub\wwwroot\index.php(3):PDO->u构造('mysql:host=loca…','avt_root','[**]')1{main}中出现未捕获的异常“PDOException”,消息为“SQLSTATE[HY000][1045]拒绝用户

起初我试着用PHP连接PDO。但是,我收到拒绝访问的消息。我可以使用完全相同的命令连接到命令行界面,但php从PDO中给出了以下错误:

致命错误:在C:\inetpub\wwwroot\index.php:3堆栈跟踪:#0 C:\inetpub\wwwroot\index.php(3):PDO->u构造('mysql:host=loca…','avt_root','[**]')1{main}中出现未捕获的异常“PDOException”,消息为“SQLSTATE[HY000][1045]拒绝用户'avt_root'@'localhost'(使用密码:YES)”在第3行的C:\inetpub\wwwroot\index.php中抛出

因此,接下来我尝试使用mysql_connect进行故障排除,可能是PDO参数不正确:

$mysql = mysql_connect("localhost", "avt", "[**]");
然而,即使这样,我也会犯同样的错误:

警告:mysql_connect():第2行C:\inetpub\wwwroot\index.php中的用户“avt”@“localhost”(使用密码:YES)的访问被拒绝

服务器配置: IIS7.0,PHP在fast_cgi和MySQL下运行,并在PHP.ini文件中选择了正确的扩展名


非常感谢您提供的任何帮助,除了关于正确用户名和密码的任何评论,我已经检查并三次检查了avt_root和avt帐户。两者的密码实际上是相同的,都可以通过远程桌面上的CLI登录。

localhost
在mysql领域可能有点不稳定。
mysql_*()
函数使用的标准mysql接口库在内部将
localhost
重新定义为本地unix域套接字连接。这纯粹是为了提高效率,因为unix套接字没有TCP套接字那样的开销

可能正在使用mysqlnd的PDO不会有这个问题。localhost意味着127.0.0.1,它将尝试使用TCP套接字


确保您的
avt
帐户设置为
avt@127.0.0.1
允许TCP连接。

我最终放弃了这一点,完全重新安装了MySQL,只打算使用根帐户,因为我们有足够高的安全性,所以我不必太担心有人会弄乱一个只有intranet的网站。

mysql数据库是从运行web服务器/php的同一台机器托管的吗?是的,是同一台机器。正如我在服务器配置中所说的那样……只是尝试了一下,我仍然无法使用MySQL_uu函数或PDO进行连接。
$mysql = mysql_connect("localhost", "avt", "[**]");