php - 来自机架空间或谷歌云的 MySQL 数据库 IP 地址?
问题描述
好的,这就是交易。我在 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 上才能连接吗?
解决方案
我希望您的 MySQL 服务器默认由您的 Linux 发行版的打包配置为在本地侦听或仅在套接字文件上侦听。您可以更新数据库配置以侦听服务器的公共 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
推荐阅读
- javascript - 如何使用 React js 在 material-ui Select 组件中添加全选选项?
- docker - setpgid:在 Docker 上不允许操作
- r - 错误构建网页:RStudio + blogdown + Ezhil Theme
- javascript - 谁能告诉我,如何使用 Java 脚本代码将下面的 html 下拉值保存到表中
- python - Python递归搜索(文本)文件并执行用户ID删除
- c# - 使用自定义比特率在 ASP.NET MVC 中将字节作为音频播放
- apache-spark - Spark 3.1.1 在 generated.java 文件中抛出编译错误
- django - 如何在 1:m 关系中设置默认值,Django 中 user_auth_model 的外键
- bash - pash 中 for 循环的不正确规范(错字?)
- azure - 如何获得 azure 订阅的限制?