MariaDB默认是否仅允许本地主机访问?未指定bind-address时的配置疑问
MySQL与MariaDB未指定
bind-address时的默认行为 MySQL 默认规则
如果没显式配置bind-address,MySQL 5.7及后续版本(包括8.x系列)默认会绑定所有可用的网络接口——也就是IPv4的0.0.0.0,要是开了IPv6还会同时绑定::。这时候只要数据库账号权限允许(比如账号是xxx@%而非仅限本地的xxx@localhost),远程主机就能发起连接请求。
不过要提一句:有些Linux发行版的默认MySQL安装包,会在配置文件(my.cnf/my.ini)的[mysqld]段里偷偷加bind-address=127.0.0.1,所以实际用的时候最好检查下配置文件的所有相关部分,别漏了隐藏配置。
MariaDB 默认规则
MariaDB的默认行为分版本走:
- 10.2及更早版本:和MySQL早期逻辑一致,默认绑定所有网络接口,远程能连(前提账号权限够)。
- 10.3及以后版本:默认只绑定本地回环地址,也就是
127.0.0.1(IPv4)和::1(IPv6,若启用)。相当于隐式设了bind-address=127.0.0.1,这时候默认只能本地连接,远程要访问的话,得手动把bind-address改成0.0.0.0(或指定特定IP),同时调整对应账号的权限。
怎么验证当前绑定状态
想确认数据库实际绑定的地址,有两种方法:
- 登录数据库执行SQL命令:
SHOW VARIABLES LIKE 'bind_address';
- 在服务器上用端口监听工具查看:
- Linux:
ss -tulpn | grep mysqld - Windows:
netstat -ano | findstr "3306"
- Linux:
内容的提问来源于stack exchange,提问作者user17145524
相关产品推荐
相关产品推荐

