MySQL数据库IP地址来自rackspace还是谷歌云



好吧,交易到此为止。我在Rackspace上设置了MySQL数据库,并试图连接到它。我正在使用教程谷歌地图创建使用MySQL的商店定位器。教程中的代码行要求输入主机名,我给出了Rackspace上服务器的IP地址。我正在使用我认为正确的方法,但它不起作用。有什么想法吗?

这是谷歌教程代码:

// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die("Not connected : " . mysql_error());
};
My code:
$connection=mysqli_connect ('THE IP ADDRESS OF MY RACKSPACE SERVER', 'MY USERNAME', 'MY PASSWORD');

以下是谷歌教程的链接:https://developers.google.com/maps/solutions/store-locator/clothing-store-locator

我知道我的服务器IP和用户名/密码都是正确的,因为我可以用这些凭据从终端通过SSH登录。

当我使用mysql>\s来显示状态时,它显示Connection:Localhost via UNIX socket-这是否意味着它是本地主机?我需要它托管在IP上才能连接,对吗?

默认情况下,Linux发行版的打包会将MySQL服务器配置为本地侦听或仅在套接字文件上侦听。您可以更新DB配置以侦听服务器的公共IP地址,但显然这可能会带来一些安全隐患。

要执行此操作,请编辑/etc/mysql/mysqld.conf文件(根据所使用的分发版本,该文件的位置可能略有不同(和以下行。。。

来自

#bind-address                   = 127.0.0.1

bind-address                   = 0.0.0.0

现在使用systemctl或service命令重新启动MySQL服务。

service mysql restart

您的MySQL服务器现在正在侦听主机的所有IP地址。如果你想将其限制为一个,你应该输入该IP,而不是0.0.0.0。您现在应该能够远程连接到MySQL服务器,但是,您必须已经将数据库用户配置为能够从Web服务器登录。如果您还没有配置用户,请执行类似操作。

mysql
CREATE USER '<username>'@'<webserver ip address here>' INDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<webserver ip address>';
FLUSH PRIVILEGES;

您现在应该能够以该用户的身份登录,并从指定的服务器IP地址查看/修改/插入等数据到指定的数据库。您可以使用MySQL客户端在web服务器上测试这一点,如下所示。。。

mysql -u <username> -h <db server ip> -p

最新更新