php - 错误 : "SQLSTATE[28000] [1045] Access denied for user" on cPanel SQL database

标签 php mysql pdo cpanel

这似乎是一个高度关注的问题。然而,我看到的大多数线程都是本地连接问题,或者有人说请确保用户名和密码正确,我已经做到了。

我正在托管我的第一个网站,该网站的名称为 cheap,并已使用 cPanel 和 myPHPAdmin 导入了该数据库。但是,当我加载我的网站时,出现“SQLSTATE[28000] [1045] 用户 'cPanelUsername_dbUsername'@'server.web-hosting.com'(使用密码:YES)拒绝访问”的 PHP 错误。 我正在使用此代码进行连接。

  private $DB;

  public function __construct() {
    $db = 'mysql:dbname=cPanelUsername_Database; charset=utf8; host=server_ip';
    $user = "cPanelUsername_DatabaseUsername";
    $password = "password";

    try {
      $this->DB = new PDO ( $db, $user, $password );
      $this->DB->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    } catch ( PDOException $e ) {
    echo ('Error establishing Connection: '.$e->getMessage());
      exit ();
    }
  }

所有权限也授予用户并添加到数据库中。我创建了多个用户,但都导致了错误。

最佳答案

如果您从本地主机(您的计算机)运行代码。 确保您没有在“主机”字段中输入“localhost”或“127.0.0.1”。

而是写入远程服务器的实际公共(public) IP 地址。

$db = 'mysql:dbname=cPanelUsername_Database; charset=utf8; host=remote_server_public_ip';

然后转到 CPanel 并找到“DATABASES”部分下的“Remote MySQL”选项,并将您的公共(public) ip 地址(您家/办公室的公共(public) ip 地址)添加到列表中。

将代码上传到远程服务器后,您可以将“主机”字段更改为“127.0.0.1”或“本地主机”。

我知道这听起来很明显,但这让我难受了大约 10 分钟。

关于php - 错误 : "SQLSTATE[28000] [1045] Access denied for user" on cPanel SQL database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50902457/

相关文章:

php - 有没有办法强制curl使用特定的IP而不是使用DNS查找?

java - 当 RSS 订阅号为零时向网站添加文本

php - PDO: "Invalid parameter number"当用相同的值替换多个参数时

php - 尝试在 MYSQL 中执行 SELECT 语句但不起作用

php - 更改 MySQL 数据库的字符集会导致 SELECT 问题吗?

php - mediawiki 页面的不同侧边栏

MySQL在一个查询中删除多行,每行唯一的条件

php - 像cms一样在.php文档中显示不同的mysql数据

mysql - 带连接的sql更新

php - 该脚本不会将数据保存到mysql