MySQL远程连接失败?先查bind-address和防火墙配置!

2026-05-08 01:070阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1012个文字,预计阅读时间需要5分钟。

MySQL远程连接失败?先查bind-address和防火墙配置!

默认安装的MySQL通常只监听本地回环地址,远程客户端端发来的TCP请求无法直接进入,连接阶段都过不去。这不是密码错误或用户没有授权的问题,而是压力根没有在监听那个网卡的地址。

检查方式:grep bind-address /etc/mysql/mysql.conf.d/mysqld.cnf(Debian/Ubuntu)或 /etc/my.cnf(CentOS)。常见错误值是 bind-address = 127.0.0.1 或直接注释掉这行(某些版本默认即为 127.0.0.1)。

  • 要允许远程连接,改成 bind-address = 0.0.0.0(监听所有 IPv4 接口),或指定具体内网 IP(如 192.168.1.100)更安全
  • 改完必须重启服务:sudo systemctl restart mysql(或 mysqld
  • 注意:MySQL 8.0+ 默认禁用 skip-networking,但若配置里显式写了它,必须删掉,否则 bind-address 无效

用户权限不足:CREATE USERGRANT 必须配对使用

即使端口通了、bind 地址放开了,MySQL 层还会校验登录用户是否被允许从该 host 连入。用 root@localhost 创建的用户,默认不能从 192.168.1.50 连,这是两个完全不同的账号。

阅读全文

本文共计1012个文字,预计阅读时间需要5分钟。

MySQL远程连接失败?先查bind-address和防火墙配置!

默认安装的MySQL通常只监听本地回环地址,远程客户端端发来的TCP请求无法直接进入,连接阶段都过不去。这不是密码错误或用户没有授权的问题,而是压力根没有在监听那个网卡的地址。

检查方式:grep bind-address /etc/mysql/mysql.conf.d/mysqld.cnf(Debian/Ubuntu)或 /etc/my.cnf(CentOS)。常见错误值是 bind-address = 127.0.0.1 或直接注释掉这行(某些版本默认即为 127.0.0.1)。

  • 要允许远程连接,改成 bind-address = 0.0.0.0(监听所有 IPv4 接口),或指定具体内网 IP(如 192.168.1.100)更安全
  • 改完必须重启服务:sudo systemctl restart mysql(或 mysqld
  • 注意:MySQL 8.0+ 默认禁用 skip-networking,但若配置里显式写了它,必须删掉,否则 bind-address 无效

用户权限不足:CREATE USERGRANT 必须配对使用

即使端口通了、bind 地址放开了,MySQL 层还会校验登录用户是否被允许从该 host 连入。用 root@localhost 创建的用户,默认不能从 192.168.1.50 连,这是两个完全不同的账号。

阅读全文