使用 PHP 连接数据库时出错

Posted

技术标签:

【中文标题】使用 PHP 连接数据库时出错【英文标题】:error connecting to DB with PHP 【发布时间】:2012-05-15 12:56:52 【问题描述】:

我尽我最大的努力从不使用 php,因此我并不精通它我在这里遇到了一个我完全不明白的问题我尝试了很多事情,包括不包括表参考/config 从 localhost 更改为 mysql 主机等。

这可能会非常明显,但我只是没有发现它!我不用说所有的数据库凭据都是完全正确的(我可以从 scala 和 python 很好地连接它) anway 这是错误(真实的用户名/密码不存在 OFC)

致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000] [1044] 用户 'username'@'10.1.1.43' 拒绝访问 /home/a5555413/public_html/ 中的数据库 'a5555413_AudioPl.users'' drive/auth_handler.php:153 堆栈跟踪:#0 /home/a5555413/public_html/drive/auth_handler.php(153): PDO->__construct('mysql:host=mysq...', 'username...' , 'passwd') #1 /home/a5555413/public_html/drive/auth_handler.php(74): AuthHandler->GetDbConnection() #2 /home/a5555413/public_html/drive/index.php(47): AuthHandler-> AuthHandler('webui') #3 main 在第 153 行的 /home/a5555413/public_html/drive/auth_handler.php 中抛出

const 的连接代码在单独的配置文件中定义

function GetDbConnection() 
    $dbh = new PDO(Config::DB_PDO_CONNECT,
        Config::DB_PDO_USER,
        Config::DB_PDO_PASSWORD);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbConnection = $dbh;
    return $dbConnection;
  

【问题讨论】:

您可能想要链接您用于连接的代码(当然,没有用户/密码)。 在我看来,您用于此操作的用户没有所需的权限? access denied for user @ 'localhost' to database '' 的可能重复项 @hakre 数据库不是本地主机,它是外部的,但也尝试过使用本地主机版本我确实在询问找不到任何相关内容之前进行了适当的搜索。 @user1231175:这有什么不同? 【参考方案1】:

访问被拒绝意味着您使用了错误的用户名/密码,和/或您访问的帐户未在 MySQL 中正确创建。

show grants for username@10.1.1.43 显示什么?

如果您将帐户创建为 username@machinename 并且 MySQL 无法进行反向 DNS 查找以将您的 IP 更改回机器名,您也会收到此错误。

【讨论】:

【参考方案2】:

检查以下内容:

1) 您输入了正确的数据库主机名(这并不总是 localhost)、用户名和密码? 2) 用户拥有数据库权限。

如果您不知道如何检查,请告诉我。

【讨论】:

以上是关于使用 PHP 连接数据库时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中创建与 PDO 的连接时出错

使用 PhP 在 android 和 mysql 之间建立连接时出错

PHP连接MySQL服务器老是出错

建立数据库连接时出错:Google App Engine Deploy

VPS 服务器 LAMP - 建立数据库连接时出错

WordPress建立MySQL数据库连接IIS10时出错[重复]