错误:cpanel sql数据库上的“sqlstate[28000][1045]拒绝用户访问”

xxhby3vn  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(364)

这似乎是一个涉及面很广的问题。然而,我看到的大多数线程都是本地连接问题,或者有人说确保用户名和密码是正确的,我已经做到了。
我主持我的第一个网站上的名称廉价数据库和导入了cpanel和myphpadmin数据库。但是,当我加载我的网站时,我得到一个php错误“sqlstate[28000][1045]拒绝访问用户'cpanelusername\u dbusername'@'server.web hosting.com'(使用密码:yes)”。我用这个代码连接。

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

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

y3bcpkx1

y3bcpkx11#

如果您是从本地主机(计算机)运行代码。确保没有将“localhost”或“127.0.0.1”放在“host”字段上。
而是写下远程服务器的实际公共ip地址。

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

然后转到cpanel,找到“databases”部分下的“remotemysql”选项,并将您的公共ip地址(家庭/办公室的公共ip地址)添加到列表中。
将代码上传到远程服务器后,就可以将“host”字段更改为“127.0.0.1”或“localhost”。
我知道这听起来很明显,但这让我很难受了10分钟。

txu3uszq

txu3uszq2#

如果登录/密码没有错误,你应该向你的主机提供商询问这个问题。因为这是绝对明确的连接错误。
尝试重新检查主机。在您的例子中,主机是'server\u ip',但错误的是'server.web hosting.com'。

相关问题