2014-03-28 41 views
0

我想从另一个网站远程连接到SQL。我做了whois查找,以获取尝试连接并在cPanel中将其列入白名单的域的IP地址。我也做了echo $_SERVER['SERVER_ADDR'];,并且由于某种原因获得了不同的IP地址,所以我也将其列入了白名单。我也尝试通过域名进行白名单,但MySQL仍拒绝连接。哪些IP应该列入MySQL远程连接白名单?

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

+1

查看您将要连接的网站的cPanel。它会显示你的IP地址,这就是你需要加入白名单的地址。此外,当你说白名单,确保你的意思是允许*远程连接*在你的MySQL(通过cPanel)。 –

+0

见的事情是,我没有的cPanel访问到被连接,只有有我试图连接到数据库的网站的网址。 –

+1

你有没有试过允许目标数据库cPanel远程mysql连接,你有权访问?您是否还尝试将网址列入白名单而不是IP地址?一些虚拟主机服务为几个URL共享一个共同的IP地址,并使用收到的URL来识别系统内指向哪些资源。 –

回答

0

您需要白名单服务器的IP为主(在该域托管)。从服务器的传出连接通过服务器的主IP地址。如果它是一台Linux机器,则可以使用命令hostname -i来查找主IP地址。你也可以检查哪些IP使用命令tcpdump -n dst 1.1.1.1 and port 3306 更改根据MySQL服务器的端口号& IP地址建立连接到MySQL。对于问题

1

分析更容易,但它需要一些工作。

访问控制台MySQL的验证,如果交友接口把正确的凭据在MySQL。毕竟WHM /交友是一个简单的控制面板,使管理工作对我们来说,因此容易受到错误

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中它的配置访问remotly

如果存在,必须是0.0.0.0

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

skip-networking不能上的/etc/my.cnf

检查防火墙为accesss到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

猫/var/lib/mysql/[hostname].err 2016年4月6日○点26分19秒140080907868928 [警告] IP地址'23 .251.55.75' 无法解析:名称或服务不知道

所有路径的例子是WHM /交友服务器。

[text]替换为真实姓名