最近我购买了域名" domain.com"。托管公司有通常的CPanel来处理数据库。
使用" MySQL数据库"我:
到目前为止一切顺利。
之后我点击PHPMyAdmin并重定向到PHPMyAdmin网页。在那里,我看到"数据库1"我以前创建的。单击该数据库,我使用IMPORT导入一个名为" test"的非常简单的表。 [列(id,name,surname)]。导入表创建的表" test"在数据库" database1"下面,这是正确的。
之后我尝试使用下面的代码(connect_to_db.php
)连接到该数据库:
// Create connection
$con=mysqli_connect("domain.com","user1","pass1","database1");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error() ."<br>";
}
我已将connect_to_db.php
上传到/home/domain/public_html/
。
当我尝试连接到database1时,我收到以下错误:
Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'user1'@'xxx.xxx.xxx.xxx' (using password: YES) in /home/karkoona/public_html/connect_to_db.php on line 13
其中xxx.xxx.xxx.xxx
是domain.com的公共IP(如果我做对了)。
同样在PHPMyAdmin的登陆页右侧,我看到:
user: domain@localhost
知道为什么我无法使用当前用户访问数据库吗? 我的代码中有错误吗?
感谢。
答案 0 :(得分:1)
您需要使用它的IP授予对user1的访问权限以访问远程服务器:
GRANT ALL PRIVILEGES ON database1.* to 'user1'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'pass1';
注意:将当前信息(例如xxx.xxx.xxx.xxx
)的相关信息替换为将访问远程MySQL的当前服务器IP。
由于你正在使用cPanel,你可以这样做以允许IP:
答案 1 :(得分:0)
可能是因为:
1) User name or password you are using is wrong
2) User may not have privillage to access the database
答案 2 :(得分:0)
您未通过连接检查中的$ con
if (mysqli_connect_errno())
替换为
if (mysqli_connect_errno($con))
答案 3 :(得分:0)
您需要做的就是将服务器IP地址添加到cpanel中的远程数据库访问主机。它将允许访问您的数据库,并且使用相同的方法在您使用localhost时允许访问。但您所要做的就是将您的计算机IP地址添加到远程数据库中。