这似乎是一个涉及面很广的问题。然而,我看到的大多数线程都是本地连接问题,或者有人说确保用户名和密码是正确的,我已经做到了。
我主持我的第一个网站上的名称廉价数据库和导入了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 ();
}
}
所有权限也被授予用户并添加到数据库中。我创建了多个用户,所有这些都导致了错误。
2条答案
按热度按时间y3bcpkx11#
如果您是从本地主机(计算机)运行代码。确保没有将“localhost”或“127.0.0.1”放在“host”字段上。
而是写下远程服务器的实际公共ip地址。
然后转到cpanel,找到“databases”部分下的“remotemysql”选项,并将您的公共ip地址(家庭/办公室的公共ip地址)添加到列表中。
将代码上传到远程服务器后,就可以将“host”字段更改为“127.0.0.1”或“localhost”。
我知道这听起来很明显,但这让我很难受了10分钟。
txu3uszq2#
如果登录/密码没有错误,你应该向你的主机提供商询问这个问题。因为这是绝对明确的连接错误。
尝试重新检查主机。在您的例子中,主机是'server\u ip',但错误的是'server.web hosting.com'。