我应该将哪些IP列入MySQL远程连接的白名单?

时间:2014-03-28 18:59:55

标签: php mysql ip cpanel remote-access

我正在尝试从其他网站远程连接到SQL。我做了一个whois查找,以获取尝试连接并在cPanel中将其列入白名单的域的IP地址。我也做了一个echo $_SERVER['SERVER_ADDR'];并且出于某种原因获得了不同的IP地址,因此我也将其列入白名单。我也尝试过使用域名列入白名单,但MySQL仍然拒绝连接。

如果我允许从所有(%)访问它将工作,但显然我不会这样做..我怎么能确定,哪个IP地址需要列入白名单,以便SQL允许连接?

3 个答案:

答案 0 :(得分:1)

分析问题更容易但需要一些工作。

访问控制台mysql以验证Cpanel接口是否在mysql上放置了正确的凭据。毕竟WHM / Cpanel只是一个控制面板,使管理工作对我们有用,因此很容易出错

mysql > SELECT user, host FROM mysql.user WHERE user LIKE %user%;
+--------------------+----------------+
| user               | host           |
+--------------------+----------------+
| special_user       | %              |
| horde              | 127.0.0.1      |
| zabbix             | 127.0.0.1      |
| mysqlbackup        | 163.XXX.XXX.31 |
| root               | 176.XX.XXX.39  |
...

如果用户在mysql权限表上,请验证my.cnf是否已配置为远程访问

如果存在必须是0.0.0.0

cat /etc/my.cnf |grep bind-address
bind-address=0.0.0.0

skip-networking也不能在/etc/my.cnf

检查防火墙以访问3306端口

iptables -L -n |grep 3306
...
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:3306

帮助也很好,表明显示应用程序的错误,因为这确定了发生故障的层。

示例

ERROR 1130 (HY000): Host ‘1.2.3.4’ is not allowed to connect to this MySQL server

和mysql的日志

cat /var/lib/mysql/ [hostname] .err 2016-04-06 0:26:19 140080907868928 [警告] IP地址' 23.251.55.75'无法解决:名称或服务未知

所有路径示例均适用于WHM / Cpanel服务器。

[text]替换真实姓名

答案 1 :(得分:0)

您需要将服务器的主IP列入白名单(托管域的位置)。来自服务器的传出连接通过服务器的主IP地址进行。如果它是Linux机器,您可以使用命令hostname -i找出主IP地址。您还可以使用命令tcpdump -n dst 1.1.1.1 and port 3306检查哪个IP与MySQL建立连接 更改端口号和根据MySQL服务器的IP地址。

答案 2 :(得分:0)

就我而言,我发现password表中有一个错误的mysql.user条目。

我所做的是为正确的主机添加了错误的密码。通过查看password字段,我能够识别出错误的密码-唯一与我要连接的主机不同的密码。

SELECT * FROM mysql.user WHERE user LIKE '%username%' \G;

我删除了该条目并再次分配了权限,此问题已解决。

在开发环境中,我在MySQL级别进行了更改。