Bla*_*laM 295 mysql linux configuration ip
有没有一种秘密方法可以将 MySQL 绑定到多个 IP 地址?
据我所知,my.cnf 中的bind-address参数不支持多个 IP,并且您不能拥有多个 IP。
Chr*_*yer 278
不,没有(我刚在 1 小时前检查过)。您可以在 my.cnf 中注释绑定地址:
注意:“1 小时前”现在是 10 多年前。
#skip-networking
#bind-address = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
如果您只需要 2 个 IP,则必须使用防火墙。
对于 MySql 版本 8.0.13 及更高版本,您可以指定以逗号分隔的 IP 地址列表。
bind-address = 10.0.0.1,10.0.1.1,10.0.2.1
Run Code Online (Sandbox Code Playgroud)
请记住在更改配置文件后重新启动您的 MySQL 实例。
Gre*_*her 82
绑定到 127.0.0.x 不会使其对所有设备可用,它只会使其仅在本地可用。如果您希望使其可用于所有接口,则应使用 0.0.0.0。如果您希望从多个接口访问它,但少于所有接口,您应该绑定到 0.0.0.0 并防火墙关闭您不想通过其访问的接口。
此外,作为第二层安全,您应该确保所有 MySQL 用户都将主机字段设置为 % 以外的其他内容(即任何主机)。
ken*_*orb 51
您不能绑定到多个 IP 地址,但您可以绑定到所有可用的 IP 地址。如果是这样,只需0.0.0.0
在您的 MySQL 配置文件(例如 /etc/mysql/my.cnf)中使用一个绑定地址,如下所示:
bind-address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
如果地址为 0.0.0.0,则服务器接受所有服务器主机 IPv4 接口上的 TCP/IP 连接。
此外,如果地址是::
,则服务器接受所有服务器主机 IPv4 和 IPv6 接口上的 TCP/IP 连接。使用此地址允许所有服务器接口上的 IPv4 和 IPv6 连接。
或者您可以简单地完全注释掉bind-address=
,因此它将绑定到所有地址。但是,skip-networking
如果您还想允许远程连接,请确保您没有在 my.cnf 中启用(阅读更多:MySQL:同时允许远程和本地连接)。
更改绑定地址后,不要忘记通过以下方式重新启动 MySQL 服务器:
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
最终你可以考虑在一台机器(不同的端口)上运行多个 MySQL 实例,使用 Master/Slave 复制。复制使数据从一台 MySQL 数据库服务器(主服务器)复制到一台或多台 MySQL 数据库服务器(从服务器)。
阅读更多:
小智 17
正如其他人所回答的那样,目前还没有一种方法可以选择性地绑定到多个接口。
Linux 有一些 TCP 工具使之成为可能。在此设置中,您将配置 mysql 以侦听 127.0.0.1,然后使用redir在任意接口上公开它。
我一直在使用它来帮助虚拟机来宾查看主机上安装的 mysql。
redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &
Run Code Online (Sandbox Code Playgroud)
ttt*_*ttt 14
在 MySQL 8.0.13 之前,--bind-address 接受单个地址值,它可以指定单个非通配符 IP 地址或主机名,或允许侦听多个网络接口的通配符地址格式之一 (*, 0.0 .0.0 或 ::)。
从 MySQL 8.0.13 开始,--bind-address 接受刚才描述的单个值,或逗号分隔值的列表。When the option names a list of multiple values, each value must specify a single non-wildcard IP address or host name; none 可以指定通配符地址格式(*、0.0.0.0 或 ::)。
来源:https : //dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_bind_address
在my.cnf更改(通常在 Linux 或 Windows 上的/etc/mysql/my.cnf检查此答案。
bind-address = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
到
bind-address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
然后在 Windows上重启 mysql(在 Ubuntu服务 mysql restart 上)通常通过Win+R services.msc服务重启
0.0.0.0 告诉它绑定到所有可用 IP 的端口也在 my.cnf 中给出