使用SQLyog创建MySQL用户后连接提示Access Denied错误求助
解决MySQL "Access denied for user@ipaddress using password yes" 错误
问题背景
- 通过SQLyog创建了
localhost下的MySQL用户 - 已为该用户授予全部全局权限
- 尝试连接时触发错误:
Sqlyog mysql access denied for user@ipaddress using password yes
常见解决方法
1. 修正用户主机匹配问题
MySQL中user@localhost和user@[IP地址]是两个独立的用户身份,你创建的是仅允许本地localhost访问的用户,但连接时用的是IP地址,导致权限不匹配。
先执行SQL查看现有用户的主机配置:
SELECT user, host FROM mysql.user;
如果列表里只有你的用户名@localhost,可以按需求选择:
- 允许任意IP访问该用户:
CREATE USER '你的用户名'@'%' IDENTIFIED BY '你的密码'; GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 仅允许当前客户端IP访问:
CREATE USER '你的用户名'@'你的客户端IP' IDENTIFIED BY '你的密码'; GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'你的客户端IP' WITH GRANT OPTION; FLUSH PRIVILEGES;
2. 确保权限已刷新
授予权限后必须执行FLUSH PRIVILEGES;,否则MySQL不会加载新的权限配置,修改等于没生效。
3. 核对连接参数
检查SQLyog连接窗口里的用户名、密码是否和创建用户时完全一致,注意不要有空格或大小写错误(MySQL用户名默认不区分大小写,但部分环境可能例外)。
4. 检查MySQL绑定地址
打开MySQL配置文件(Linux是/etc/my.cnf//etc/mysql/my.cnf,Windows是my.ini),找到bind-address参数:
- 如果设置为
127.0.0.1,只能本地连接,需改为0.0.0.0允许所有IP访问,或指定具体IP - 修改后重启MySQL服务生效
5. 排查防火墙/安全组
确认服务器防火墙或云安全组已开放MySQL默认端口3306,允许你的客户端IP访问。
内容的提问来源于stack exchange,提问作者Moeez
相关产品推荐
相关产品推荐

