php - MySQL 身份验证在 php 上失败,但在 phpmyadmin 中失败

标签 php mysql authentication phpmyadmin

我正在开发一个可以访问 MySQL 的 PHP 网站。我的托管站点是共享的,我从安装在共享托管服务器上的 phpmyadmin 创建了一个数据库。我创建了 2 个用户,一个具有管理权限,另一个仅具有读/写权限。我可以使用两个帐户成功连接 phpmyadmin,但是当我尝试使用相同的帐户和相同的凭据访问 mysql 时,php 给了我一个:

Database connection failed: Access denied for user 'myusername'@'localhost' (using password: YES)

这很奇怪。 PHPMyAdmin 表示服务器是 localhost,这意味着我在 php 中的 mysql_connect 函数中使用了正确的服务器参数。

有人知道出了什么问题吗?有没有可能mysql只对PHPMyAdmin启用(这很荒谬)?

非常感谢您的帮助,我将不胜感激。 :)

以下是示例代码(出于安全目的,替换了用户名和密码):

defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
defined('DB_USER')   ? null : define("DB_USER", "host_admin");
defined('DB_PASS')   ? null : define("DB_PASS", "mysuperpassword");
defined('DB_NAME')   ? null : define("DB_NAME", "mydb_inhostingserver");

...

$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);

if (!$this->connection) {
    die("Database connection failed: " . mysql_error());
} else {
    $db_select = mysql_select_db(DB_NAME, $this->connection);

    if (!$db_select) {
    die("Database selection failed: " . mysql_error());
    }
}

...

Database connection failed: Access denied for user 'host_admin'@'localhost' (using password: YES)

我也回显了4个常量,它们的值是正确的!我真的迷失在这里......

其他信息:

  • FTP 地址是:ftp.thewebsiteimtalkingabout.com
  • PhpMyAdmin 地址是:mysql.thewebsiteimtalkingabout.com

那么这是否意味着我的代码和 MySQL 的 phpmnyadmin 在同一主机上运行?

答案:

好吧,所以我正在测试他们位于不同服务器中的理论,尽管他们的域是相同的。我提取了他们各自的ip地址,发现他们是不同的。然后我将“localhost”参数替换为 phpmyadmin 所在的 IP 地址,然后繁荣!现在已连接。非常感谢大家的回复!

最佳答案

Eepot - 这并不意味着您的应用程序与 mySQL 数据库位于同一服务器上。

例如,在我的主机上,数据库位于另一台服务器上 - 但 phpmyadmin 也在该服务器上。这意味着“phpmyadmin”将服务器报告为“localhost” - 但我的应用程序需要使用完整的服务器名称连接到服务器。

您需要向您的托管提供商询问连接到您的 mySQL 服务器的详细信息。

关于php - MySQL 身份验证在 php 上失败,但在 phpmyadmin 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257617/

相关文章:

php - 应使用哪些 HTTP 状态代码来为下载管理器提供建议?

php - 如何找出sql表中缺失的数字

php - Laravel API 路由由用户 session 进行身份验证

C++:如何以编程方式在 Windows 凭据管理器中创建本地用户登录凭据,以便 "runas/savecred"可以使用它?

java - Web 服务用户身份验证和 session 管理的最佳实践

php - Onsubmit javascript 将值发送到 php 并返回值

如果createDate每隔1天、2天、3天等过去,php如何发送电子邮件?

php - 构建在 codeigniter 之上的 PHP 应用程序可以同时连接到 MySQL 和 mongoDB 数据库吗?

mysql - 如何正确总结为 “Order Time” + “leave Time” - mysql (添加小时而不是秒)

python - 使用 python 进入数据库