从localhost连接到服务器数据库

时间:2014-05-25 23:30:30

标签: php mysql remote-access

我尝试做的是从localhost连接到服务器数据库。

$host = 'http://www.my-domain.com/phpmyadmin/';
$user = 'u5er';
$pass = 'pa55w0rd';
$db = 'db_name';

$con = mysqli_connect($host,$user,$pass,$db) or die("Error " . mysqli_error($con));
$sql = "SELECT col FROM test WHERE id = '1'";

$result = mysqli_query($con,$sql);

错误

Warning: mysqli_connect(): in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362

Warning: mysqli_connect(): in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362

Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362
Error

有可能解决它吗?如何确定我的服务器是否允许外部连接?以及如何定义应该允许哪些IP地址访问数据库?

感谢您的任何建议。

修改 好的,我已将主机更改为my-domain.com,现在它报告了以下错误。我的IP无法访问MySQL服务器...

Warning: mysqli_connect(): (HY000/1130): Host '88.146.210.54' is not allowed to connect to this MySQL server in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362
Failed to connect to MySQL: Host '88.146.210.54' is not allowed to connect to this MySQL server
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 368

6 个答案:

答案 0 :(得分:2)

如果您将本地主机文件上传到网络服务器,某些主机提供商,也使用“localhost”作为主机名

$host = 'localhost';
$user = 'u5er';
$pass = 'pa55w0rd';
$db = 'db_name';

当您未配置主机授予访问数据库时,“主机'XXX.XXX.XXX'不允许连接到此MySQL服务器”

答案 1 :(得分:1)

您的日志记录在以下行中有错误:

$con = mysqli_connect($host,$user,$pass,$db) or die("Error " . mysqli_error($con));

$con永远不会分配值(基数mysqli_connect失败)并且您将其传递给mysqli_error()

请尝试以下方法 - 它将为您提供有关无法连接的原因所需的信息:

$con = mysqli_connect($host,$user,$pass,$db);
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

正如Dagon所提到的那样,您的主机字符串应该类似于my-domain.com,甚至更可能是localhost而不是http://www.my-domain.com/phpmyadmin/

答案 2 :(得分:1)

大多数外部数据库通过具有正确端口号的IP或域/子域连接。你输入的是“http”,这是端口80.大多数MySQL是3306.你的主机/极值提供商应该给你一个数据库服务器的IP和登录详细信息......

答案 3 :(得分:1)

您的IP地址必须注册到您的主机才能连接到数据库

答案 4 :(得分:1)

是的,可以解决这个问题。 将变量$ host更改为正确的主机名(localhost或其他)。

要了解您的服务器是否允许外部连接,您可以使用online port扫描来查看您是否拥有对外界开放的mysql端口(默认为3306)。

要定义哪些IP地址可以访问您的数据库,您应该使用防火墙规则。

答案 5 :(得分:0)

主机字符串错误。有效的mysql URL将采用'mysql://hostname.tld/database'的形式。然而,管理员通过互联网提供SQL数据库非常不寻常。您最有可能尝试从与数据库服务器相同的服务器或网络运行您的php应用程序。