创建仅访问指定库的MySQL用户后无法远程连接,原因何在?
解决MySQL用户远程登录报错2013的常见原因
以下是导致auser账号无法远程登录、出现2013 - Lost connection to MySQL server during query错误的常见原因及排查方向:
MySQL服务仅绑定本地IP
默认配置下,MySQL可能只监听127.0.0.1(仅允许本地访问)。检查服务器上的my.cnf(Linux)或my.ini(Windows)文件,查找bind-address配置项:- 若值为
127.0.0.1,修改为0.0.0.0(允许所有IP访问) - 保存配置后重启MySQL服务生效
- 若值为
防火墙/安全组未开放3306端口
远程服务器的系统防火墙(如iptables、ufw)或云服务商的安全组规则可能拦截了3306端口的外部请求:- 临时关闭防火墙测试连接(生产环境谨慎操作)
- 永久解决方案:在防火墙/安全组中添加允许外部访问3306端口的规则
用户权限配置异常
尽管执行了授权语句,仍可能存在权限未正确生效的情况:- 执行以下SQL确认用户的host配置:
确保SELECT user, host FROM mysql.user WHERE user='auser';host字段值为% - 检查用户权限:
若权限不符,重新执行授权语句并再次SHOW GRANTS FOR 'auser'@'%';FLUSH PRIVILEGES;
- 执行以下SQL确认用户的host配置:
密码认证插件不兼容
MySQL 8.0及以上版本默认使用caching_sha2_password认证插件,部分旧版本Navicat可能不支持该插件。可修改用户的认证方式为兼容的mysql_native_password:ALTER USER 'auser'@'%' IDENTIFIED WITH mysql_native_password BY 'auser'; FLUSH PRIVILEGES;网络连接不稳定
本地与远程服务器之间的网络波动也可能导致连接中断:- 使用
ping 服务器IP测试基础连通性 - 使用
telnet 服务器IP 3306测试端口是否可正常访问
- 使用
内容的提问来源于stack exchange,提问作者Amelie
相关产品推荐
相关产品推荐

