好的,这是交易。我在Rackspace上设置了MySQL数据库,并试图连接到它。我正在使用教程谷歌地图创建存储定位器使用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');
以下是谷歌教程的链接:https://developers.google.com/maps/solutions/store-locator/clothing-store-locator
我知道我有正确的服务器IP和我的用户名/密码正确,因为我可以通过SSH从终端使用这些凭据登录。
当我使用mysql> \s显示状态时,它表示连接:通过UNIX的本地主机--这是否意味着它是本地主机?我需要它托管在IP上来连接,对吗?
发布于 2019-01-13 23:23:09
我希望您的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服务器,但是,您必须已经将数据库用户配置为能够从user服务器登录。如果您尚未配置用户,请执行以下操作。
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
https://stackoverflow.com/questions/53137387
复制相似问题