浅谈在 MariaDB 和 MySQL 中配置 binding-address
先解释一下一台 VPS 机器上的几种不同 IP
- 127.0.0.1(也称 localhost ,本机 IP ,只有本机才能访问)
- 192.168.1.88(内网 IP,只有内网才能访问)
- 142.250.115.139(外网 IP,所有外网机器都能访问)
- 172.17.0.1( Docker 的桥接 IP ,所有 docker 都能访问)
binding-address 是指数据库所监听的 IP,就是可以通过这个 IP 来连接数据库,如果监听的 IP 只是内网 IP,那么只有能连接到内网 IP 的机器才可通过 IP 连接到数据库,这样就给数据库提供一定的安全保证。
如果想让所有的 IP 都能连接到数据库,那么可以用 0.0.0.0 作为 IP,这就表示数据库在监听所有的 IP。不建议把 binding-address 设为 0.0.0.0,这样会对数据库的安全性造成一些隐患。
安装 MariaDB 和 MySQL 后,默认的 binding-address 是 127.0.0.1,要想让数据库监听别的 IP,就需要修改数据库的配置文件。
修改 MariaDB 的配置文件
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
修改 MySQL 的配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到 binding-address 字段
bind-address = 127.0.0.1
修改你所需要的 bind-address
bind-address = 172.17.0.1 #这样所有的docker都可以连接到数据库
bind-address = 127.0.0.1,172.17.0.1 #也可以设置多个IP,不过早期版本的MariaDB不支持多个IP
修改后保存配置文件,最后要重启服务才可以使修改生效
#重启 mariadb
sudo systemctl restart mariadb
#重启 mysql
sudo systemctl restart mysql