【问题标题】:Connect to mysql not from localhost不是从本地主机连接到 mysql
【发布时间】:2014-04-05 20:09:56
【问题描述】:

我正在尝试从我的 VDS 连接到我网站的 mysql,以下代码不起作用,秘诀是什么?

<?php

$db_host = "WEBSITE.COM";
$db_user = "username";
$db_pass = "pass";

mysql_connect("".$db_host."", "".$db_user."", "".$db_pass."") or die(mysql_error());
echo "Connected!<br />";

?>

【问题讨论】:

  • mysql_error() 消息是什么?为什么使用"".$db_host."" 而不仅仅是$db_host
  • 为什么要用空字符串连接变量?
  • “不起作用”并没有定义什么是错的。我们需要知道什么是错的。
  • 也许您的 VDS 主机上的 MySQL 配置为仅接受来自特定主机的请求。您可以告诉 MySQL 只接受来自特定 IP 地址的数据包。所以你可能不得不使用 IP 地址而不是你的域名。
  • 嗯,这是立陶宛,这里的一切通常都不正常。

标签: php mysql localhost connect


【解决方案1】:

如果没有有关错误的更多详细信息,很难猜测,但如果我不得不猜测,我会说您的用户名只允许从本地主机连接。 Mysql 用户同时拥有用户名和主机,两者必须匹配才能允许连接。

您可以创建另一个允许远程连接的用户,例如 CREATE USER username@'your.ip.address' IDENTIFIED BY 'some_password'

然后授予他访问您想要的数据库的权限(请参阅http://dev.mysql.com/doc/refman/5.1/en/grant.html)。

要检查的另一件事是 mysql 正在使用的端口(默认为 3306)对外界开放,并且 mysql 服务器正在侦听所有接口(请参阅您的 my.cnf 配置文件)。

【讨论】:

  • 但我想做的是从 VDS.Mysql 中获取信息并将其插入到 Website.Mysql,所以如果我创建另一个用户,它就没有我的数据库。
  • 是的,如果你授予他访问权限,使用我指出的 GRANT 命令:)
  • 它说“#1227 - 访问被拒绝;您需要(至少一个)CREATE USER 权限才能执行此操作”
【解决方案2】:

当您发布错误代码时,我建议阅读 this 主题。我相信,答案就在那里;)

【讨论】:

  • 问题是我不是我要连接的服务器的所有者。我只有一个托管计划。所以我无法访问该文件。
  • 您究竟为什么要尝试从外部连接?您的 .php 文件托管在哪里?
  • 嗯,我有一个上传文件的服务器,我有一个网站,可以在其中发布指向这些文件的链接,我想创建一个自动完成所有操作的程序,所以我应该得到名称,链接以及我的 VDS mysql 中的一些其他道具,并将其插入到我网站的数据库中。
【解决方案3】:

您的 VDS 主机上的 MySQL 可能配置为仅接受来自特定主机的请求。您可以告诉 MySQL 只接受来自特定 IP 地址的数据包。所以你必须使用这样的IP地址而不是你的域名。

如果您不知道该 IP 地址唯一的解决方案是联系您的托管服务商,恕我直言。

【讨论】:

  • 好吧,我想那我必须换一种方式,将脚本上传到我的网站并连接到我拥有的 VDS。
猜你喜欢
  • 2017-02-27
  • 1970-01-01
  • 2013-12-24
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
相关资源
最近更新 更多