这似乎是一个高度关注的问题。然而,我看到的大多数线程都是本地连接问题,或者有人说请确保用户名和密码正确,我已经做到了。
我正在托管我的第一个网站,该网站的名称为 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/