【问题标题】:Connecting to MySQL database hosted on remote server连接到远程服务器上托管的 MySQL 数据库
【发布时间】:2014-03-17 23:49:38
【问题描述】:

最近我购买了一个域“domain.com”。托管公司有常用的 CPanel 来处理数据库。

使用“MySQL 数据库”我:

  1. 创建了一个名为“database1”的数据库
  2. 使用用户名“user1”和密码“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/

当我尝试连接到 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

知道为什么我不能用当前用户访问数据库吗? 我的代码有错误吗?

谢谢。

【问题讨论】:

  • user1 无权访问该数据库。因此请使用 root 用户将权限授予user1
  • 您的托管服务提供商可能有文档以及示例连接...检查一下
  • @christostsang 检查我关于 cPanel 的回答的第二部分。

标签: php mysql phpmyadmin


【解决方案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 地址。
  • 单击添加主机按钮。

【讨论】:

  • 将 IP 地址添加到远程数据库访问主机中就可以了!老实说,我之前尝试过,但我使用的是 domain.com 而不是 IP,它没有保存它。非常感谢!
【解决方案2】:

可能是因为:

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

【讨论】:

    【解决方案3】:

    你没有通过 $con 连接检查

     if (mysqli_connect_errno())
    

    替换为

    if (mysqli_connect_errno($con))
    

    【讨论】:

      【解决方案4】:

      您需要做的就是将您的服务器 IP 地址添加到 cpanel 中的远程数据库访问主机。它将允许访问您的数据库,并且在您使用 localhost 时使用相同的方法来允许访问。但是您所要做的就是将您的计算机 IP 地址添加到远程数据库中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-08
        • 2017-07-13
        相关资源
        最近更新 更多