2014-02-18 93 views
0

最近我购买了域名“domain.com”。托管公司拥有通常的CPanel来处理数据库。连接到远程服务器上托管的MySQL数据库

使用“MySQL数据库”我:

  1. 创建名为数据库“数据库1”
  2. 创建了用户的用户名“用户1”和密码“PASS1”
  3. 新增用户“ user1“到数据库”database1“

到目前为止这么好。

之后,我点击PHPMyAdmin并重定向到PHPMyAdmin网页。在那里我看到了我以前创建的“database1”。点击该数据库,我使用IMPORT导入了一个名为“test”[columns(id,name,surname)]的非常简单的表格。在数据库“database1”下面导入创建的表“test”,这是正确的。

之后我试图用下面的代码(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/

当我尝试连接到数据库1,我收到以下错误:

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: [email protected] 

任何想法,为什么我不能用当前用户访问数据库? 我的代码中是否有任何错误?

谢谢。

+0

'user1'没有权限访问该数据库,所以使用root用户授予'user1'的权限 – krishna

+0

您的托管服务提供商可能有文档连同示例连接...检查它 – user1844933

+0

创建用户时,您必须使用正确的“主机”字段创建它们:从用户名“user1”,主机“%”,密码“whatever”开始,然后按照您的方式运行 –

回答

1

您需要授予USER1使用它的IP来访问远程服务器访问:

GRANT ALL PRIVILEGES ON database1.* to 'user1'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'pass1'; 

注意:更换相关的信息,以目前的信息,例如如xxx.xxx.xxx.xxx添加到将访问远程MySQL的当前服务器IP。


由于您使用的cPanel,你可以做到这一点,让IP:

  • 登录到您的cPanel(如果尚未登录)。
  • 向下滚动到数据库部分。
  • 单击远程MySQL图标。
  • 输入将进行远程连接的计算机的IP地址。
  • 单击添加主机按钮。
+0

将IP地址添加到远程数据库访问主机中有诀窍!说实话,我已经尝试过,但我用domain.com而不是IP,它没有保存它。非常感谢! – christostsang

0

这可能是怎么一回事,因为:

1) User name or password you are using is wrong 
2) User may not have privillage to access the database 
0

你不能通过$ CON的连接检查

if (mysqli_connect_errno()) 

if (mysqli_connect_errno($con)) 
0

所有你需要做的是您的服务器的IP地址添加到远程数据库访问更换主机在cpanel中。它将允许访问您的数据库,并使用相同的方法来允许您在使用本地主机时进行访问。但是,您只需将您的计算机IP地址添加到远程数据库即可。

相关问题