gpt4 book ai didi

mysql - 如何检查 MySQL 拒绝传入请求的原因

转载 作者:行者123 更新时间:2023-11-29 17:00:46 33 4
gpt4 key购买 nike

我有一个远程 MySQL 数据库,我正在尝试通过我的网络服务器连接到该数据库。

尝试通过 mysqli 连接时遇到的错误是

Connection refused 2002

我已调用此命令进行远程连接:

grant all on db.* to '<user>'@'<hostname>' identified by '<password>';

我希望能在我的 MySQL 服务器的某个日志文件中找到更详细的描述。问题是哪一个合适?

其他问题建议/var/log/mysql/error.log,但我在该文件中根本没有任何输出。我目前没有运行任何类型的防火墙。可能是我的 apache 配置 妨碍了,但我不确定如何检查这一点,我想如果是这样的话,我就不会收到 2002 错误 ,而是出现其他一些 apache 风格的错误消息。

我应该查看哪些调试日志?

这是 php 和 mysql 代码:

//define DB variables
define("DB_HOST", "45.77.xx.xxx");
define("DB_NAME", "login");
define("DB_USER", "root");
define("DB_PASS", "Correct_Password");

$this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

echo mysqli_connect_error() . PHP_EOL;

echo $this->db_connection->connect_errno;

输出:

$this->db_connection->connect_errno 设置为 2002 并且mysqli_connect_error() 设置为连接被拒绝

最佳答案

授予对 mysql 中表或数据库的访问权限实际上与从给定主机连接的用户相关联,因此当您这样做时 grant all on db.* to '<user>'@'<hostname>'当用户从“主机名”连接时,您向他们授予访问权限,这可能是您的问题。确保您连接的主机与您授予权限的主机相同,或者如果您需要开放对同一域中其他主机的访问,请执行 grant all on db.* to <user>'@'%.domain.name'...
通过 show grants for username; 检查您的补助金,或select user,host from mysql.user; .
Mysql error.log 文件通常只记录 mysql 启动时的错误。

关于mysql - 如何检查 MySQL 拒绝传入请求的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52278414/

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