远程MySQL连接失败:主机不被允许接入的问题求助
问题排查:远程连接MySQL提示Host不允许访问
这个错误的核心原因是MySQL用户权限未授权远程主机(bernstein.store)访问,与防火墙、bind地址配置无关——你已经确认端口开放、bind地址正确且本地可正常连接,说明网络层面无问题。
具体排查与解决步骤:
登录本地MySQL管理端:
使用具备管理员权限的账号(如root)登录:mysql -u root -p检查现有用户权限:
查看所有MySQL用户及对应的允许访问主机:SELECT user, host FROM mysql.user;你会发现,当前用于连接的MySQL用户对应的
host字段大概率是localhost、127.0.0.1或特定本地IP,并无bernstein.store或允许远程访问的通配符%。授权远程主机访问:
- 若仅允许
bernstein.store这台主机访问,执行:GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的MySQL用户名'@'bernstein.store' IDENTIFIED BY '你的数据库密码'; - 若需临时允许所有远程主机访问(生产环境不推荐),可使用通配符:
GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的MySQL用户名'@'%' IDENTIFIED BY '你的数据库密码';
注意替换语句中的数据库名、用户名、密码为实际信息。
- 若仅允许
刷新权限生效:
执行命令使权限配置立即生效:FLUSH PRIVILEGES;验证权限配置:
再次执行SELECT user, host FROM mysql.user;,确认已出现对应用户与bernstein.store(或%)的权限条目。
额外注意:
- 生产环境优先限制特定IP/域名访问,避免使用
%通配符带来安全风险; - 若
bernstein.store对应固定公网IP,也可直接授权该IP访问,比域名授权更稳定。
内容的提问来源于stack exchange,提问作者Dr. Nab Raj Roshyara
相关产品推荐
相关产品推荐

