gpt4 book ai didi

php - MySQL - 本地连接但能够远程连接时访问被拒绝

转载 作者:可可西里 更新时间:2023-11-01 08:47:25 26 4
gpt4 key购买 nike

我有一个 PHP 应用程序托管在服务器上和本地使用 XAMP,我还有一个数据库托管在同一台服务器上。

当尝试与我的数据库建立连接时,我实例化了一个新的 mysqli 对象,如下所示:

$mysqli = new mysqli(HOST, USER, PASS, MY_DB);

这些常量的值对于我的本地和远程应用程序是相同的,但出于某种原因,它们仅在 XAMP 上使用时才有效;尝试从服务器连接时出现“用户访问被拒绝”,我不知道可能是什么问题。

抱歉我的英语不好,感谢您的帮助:)

最佳答案

有两种选择:要么绑定(bind)到远程 IP 而不是本地 IP,要么你弄乱了权限。

<强>1。绑定(bind)IP地址

如果您遵循了关于如何允许远程访问的在线教程,您可能设置了配置选项 bind-adress给你外部IP。这意味着,您的服务器将仅在外部绑定(bind),而不是在内部环回( 127.0.0.1/localhost )上绑定(bind)。

您所要做的就是:

  1. 使用 root 权限打开您的配置文件(通常是 /etc/mysql/my.cnf)
  2. 找到设置bind-adress并将其设置为 0.0.0.0

<强>2。权限

尝试通过终端授予权限给'<your user>'@'%' .如果您不明白这意味着什么,请阅读 GRANT说明书 here .

这是一个从任何地方为每个数据库的用户授予 super 用户权限的示例:

GRANT ALL PRIVILEGES ON *.* TO '<your user>'@'%' WITH GRANT OPTION;

我不建议在生产服务器上使用上述内容,因为它存在很大的安全风险。

关于php - MySQL - 本地连接但能够远程连接时访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24428623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com