MySQL 来自机架空间或 google 云的数据库 IP 地址?

MySQL database IP address from rackspace or google cloud?

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

这里是 google 教程代码:

// 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');

这是来自 google 的 link 教程:https://developers.google.com/maps/solutions/store-locator/clothing-store-locator

我知道我的服务器 IP 是正确的,我的 username/password 是正确的,因为我可以使用这些凭据从终端通过 SSH 登录。

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

我希望您的 MySQL 服务器默认由您的 Linux 分发包配置为在本地侦听或仅在套接字文件上侦听。您可以更新数据库配置以侦听服务器的 public IP 地址,但显然这可能会带来一些安全隐患。

为此编辑 /etc/mysql/mysqld.conf 文件(根据所使用的发行版,该文件的位置可能略有不同)和以下行...

来自

#bind-address                   = 127.0.0.1

bind-address                   = 0.0.0.0

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

service mysql restart

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

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