Mac端使用Sequel Pro连接MySQL遇权限拒绝错误求助
解决Sequel Pro连接MySQL时“Access denied for user 'root'@'localhost' (using password: NO)”的问题
我之前在Mac上折腾MySQL和Sequel Pro的时候,也碰到过一模一样的报错,给你几个实用的排查和解决步骤,应该能帮你搞定:
先确认root用户的密码状态
打开终端,直接输入mysql -u root回车试试:- 如果能顺利进入MySQL命令行,说明root确实是无密码状态,那问题出在Sequel Pro的配置或者权限设置上;
- 如果终端也报错说密码不对,那说明你记错了——root其实是有密码的,把正确密码填进Sequel Pro就行。
检查并修复root用户的localhost权限
如果终端能进MySQL,那先执行这条SQL看看权限情况:SELECT user, host, authentication_string FROM mysql.user;找到root对应的
host列,确认是localhost,且authentication_string是空值(对应无密码)。如果不符合,执行下面的命令修改:ALTER USER 'root'@'localhost' IDENTIFIED BY ''; -- 设置为空密码 FLUSH PRIVILEGES; -- 刷新权限生效调整Sequel Pro的连接配置
有时候不是权限的问题,是连接方式不对:- 优先试试Socket连接:在Sequel Pro的连接窗口,把连接类型改成「Socket」,然后在「Socket路径」里填
/tmp/mysql.sock(这是Mac上MySQL的默认socket路径),用户名填root,密码留空,再尝试连接; - 如果用Standard连接,确保主机是
localhost,端口是3306,密码框完全清空(不要留空格)。
- 优先试试Socket连接:在Sequel Pro的连接窗口,把连接类型改成「Socket」,然后在「Socket路径」里填
重启MySQL服务
打开Mac的「系统偏好设置」,找到底部的MySQL图标,先点击「Stop MySQL Server」停掉服务,等个5秒再点击「Start MySQL Server」重启。有时候权限修改后需要重启服务才能生效。针对MySQL 8.0+版本的特殊处理
如果你装的是MySQL 8.0及以上版本,默认用的是caching_sha2_password认证插件,老版本的Sequel Pro可能不兼容这种认证方式。这时候可以把root的认证方式改成兼容的mysql_native_password:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''; FLUSH PRIVILEGES;
内容的提问来源于stack exchange,提问作者AltBrian
相关产品推荐
相关产品推荐

