You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL主机掩码与用户权限问题:局域网无法连接数据库求助

问题分析与解决步骤

1. 确认用户账号的本质区别

MySQL的用户是用户名+主机/IP标识的组合,root@%和root@127.0.0.1是两个完全独立的账号。你当前只创建了root@localhost、root@%、dad@%、Elefteria@%这四个账号,不存在root@127.0.0.1、root@192.168.1.11这类指定IP的账号,所以用这些账号登录会直接报错。

先执行以下命令查看所有已存在的用户:

SELECT user, host FROM mysql.user;

2. 解决指定IP用户查询权限报错的问题

如果确实需要使用root@127.0.0.1或root@192.168.1.11这类账号登录,需要先创建对应账号并完成授权:

-- 创建root@127.0.0.1账号并授予全权限(可根据需求调整权限范围)
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '你的账号密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;

-- 创建root@192.168.1.11账号并授权
CREATE USER 'root'@'192.168.1.11' IDENTIFIED BY '你的账号密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.11' WITH GRANT OPTION;

-- 刷新权限使配置立即生效
FLUSH PRIVILEGES;

操作完成后,用这些指定IP的账号登录就能正常查询权限。

3. 解决局域网无法连接的问题

调整MySQL绑定地址

找到MySQL的配置文件(Windows系统一般是my.ini,Linux系统为my.cnf),定位到[mysqld]段落:

  • 将bind-address的值修改为0.0.0.0(允许所有IP地址访问),或者直接指定你的局域网IP(比如192.168.1.x)
  • 修改完成后重启MySQL服务

检查防火墙设置

确保Windows防火墙或第三方防火墙允许MySQL默认端口(3306)的入站连接,避免局域网请求被拦截。

重新确认远程账号权限

重新执行授权命令,确保root@%、dad@%这类通配符账号的远程权限生效:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'dad'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

4. 验证局域网连接

在局域网内的其他机器上,打开MySQL Workbench:

  • 主机地址填写MySQL服务器的局域网IP(比如192.168.1.x)
  • 端口保持默认3306
  • 用户名选择root@%或dad@%,输入对应密码后测试连接

内容的提问来源于stack exchange,提问作者Dimitris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:49:58