浅谈在 MariaDB 和 MySQL 中配置 binding-address

浅谈在 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