将MySQL的绑定地址设置为0.0.0.0有多糟糕?

我试图让一个远程服务器访问一个MySQL实例,当前与一个Web应用共享一个Linux服务器。 根据文档 ,这是可能的唯一方法(除非我不正确理解),如果bind-address指令设置为0.0.0.0 ,这导致MySQL允许从任何可以产生有效用户的IP访问。

所以,有两个问题:

  1. 这对安全有多不利?
  2. 有没有更好的方法来允许本地和远程与MySQL的交互?

我认为你误解了一些绑定地址设置。 这些是MySQL将监听连接的本地地址。 默认是0.0.0.0,这是所有的接口。 此设置不限制哪些IP可以访问服务器,除非您只为本地主机指定了127.0.0.1。

如果您需要限制特定IP地址的某些用户,请使用CREATE USER 'bobdole'@'192.168.10.221';

一个。 这不好。 即使你可以通过ip限制每个数据库的用户访问,我认为所有的连接都是在本地安全的。 在我的服务器上,我允许MySQL只接受本地连接,127.0.0.1是默认configuration。 要远程访问数据库,只需在连接到数据库之前创build一个ssh隧道,然后在本地连接。 如果你用PHP编码,这很容易做到这一点。 如果您使用的是桌面应用程序,那么可以在Linux上轻松完成(查找ssh隧道)。在Windows上,我通常使用像Putty这样的程序为我创build隧道。