错误:cPanel SQL数据库上的“SQLSTATE [28000] [1045]用户访问被拒绝”

时间:2018-06-18 03:49:23

标签: php mysql pdo cpanel

这似乎是一个高度覆盖的问题。但是我见过的大多数线程都是本地连接问题,或者说确保用户名和密码正确的人,我已经完成了。

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

  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 ();
    }
  }

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

2 个答案:

答案 0 :(得分:0)

如果登录/密码没有错误,您应该向您的托管服务提供商提问。因为它是绝对明确的连接错误。

尝试重新检查主机。在您的情况下,主机是' server_ip',但错误的是' server.web-hosting.com'。

答案 1 :(得分:0)

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

相反,请写出您的远程服务器的实际公共IP地址。

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

然后转到CPanel并在“数据库”部分下找到“远程MySQL”选项,然后将您的公共IP地址(家庭/办公室的公共IP地址)添加到列表中。

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

我知道这听起来很明显,但这给了我大约10分钟的时间。