如何使用PHP从其他主机连接到MySQL数据库

时间:2014-01-09 10:28:02

标签: php mysql database

我需要使用PHP连接到MySQL,但数据库在另一台主机上,我无法正确执行。

我正在使用此代码。错误在这一行:

$mysqli = new mysqli("hostex.lt","myInfo","pass","myInfoo");

“hostex.lt”。数据库在hostex.lt,phpMyAdmin:myadmin.hostex.lt我已经尝试了但它始终打印error:error:error:error:error:error:error:error:error:error:

此代码在我使用localhost的其他项目中工作,所以这里有问题。      

        for($i=1;$i<=10;$i++)
        {
    if ($stmt = $mysqli->prepare("INSERT into game (taskai, userName) VALUE (?,?) ")) {
    if (!$mysqli->set_charset("utf8")) {
        printf("Error loading character set utf8: %s\n", $mysqli->error);
    } else {
    //    printf(" ", $mysqli->character_set_name());
    }


    $stmt->bind_param('ss', $score, $name);
      // $stmt->bind_param("s", $username);

       $stmt->execute();

       if ($stmt->error != '') {
           echo ' error:'.$stmt->error;
       } else {
           echo 'success';
       }
       $stmt->close();
    } else {
       echo 'error:'.$mysqli->error;
    }
    }
    $mysqli->close();
    ?>

更新

我有这个错误:

error

2 个答案:

答案 0 :(得分:0)

默认情况下,MySQL只允许从localhost访问,如果你想从不同的主机访问它,你必须明确允许它。

登录PHPMyAdmin,转到Privileges,添加用户'myDbName'@'www.ftpDomainName.lt'(@重要后的主机部分)并授予其访问数据库的权限。

如果您无法访问PHPMyAdmin中的“权限”部分,则必须联系数据库的主持人。

答案 1 :(得分:0)

这不太可能是PHP问题本身,但很可能是数据库服务器阻塞连接的东西。

按此顺序尝试以下操作,在每个步骤后运行代码:

新MySQL用户

  • 通过PHPMyAdmin添加新数据库用户。
  • 转到权限,然后添加用户。
  • 主机可以设置为'%'(通配符 - 允许所有服务器访问。这不太安全,但可以在以后收紧)。
  • 填写您将在PHP中使用的用户名和密码 代码。
  • 重试您的代码。

数据库服务器

在数据库服务器上请求sysadmin编辑/etc/mysql/my.cnf(假设这是一台将my.cnf存储在此位置的Linux机器 - 您的sysadmin将知道如何找到正确的文件)。

  • 在行的开头使用#字符注释掉部分'bind-address = 127.0.0.1'和'skip-networking'(如果它在那里。)。
  • 保存文件
  • 重启MySQL服务(service mysql restart)。
  • 重试您的代码

<强>防火墙

如果上述步骤无效,则很可能是防火墙阻止连接。

  • 在服务器上,允许端口3306接受传入连接
  • 如果有共享防火墙设备或云托管合作伙伴(例如AWS)有防火墙,请允许端口3306
  • 重试您的代码。

请注意,如果MySQL服务器的系统管理员不想打开防火墙上的端口或启用与数据库的外部连接,那么您可以做很多事情