通过phpMyAdmin创建的用户及root无法命令行访问MySQL如何解决
MAMP环境MySQL本地登录报错解决思路
- 优先排查命令行调用的MySQL实例是否为MAMP自带版本
- MAMP默认MySQL端口为8889,系统默认MySQL端口为3306,直接执行
mysql -u testing -p默认请求3306端口会匹配错误实例,可携带参数指定端口和地址重试:mysql -u testing -p -P 8889 -h 127.0.0.1 - 执行
which mysql查看调用路径,若返回结果不是/Applications/MAMP/Library/bin/mysql,说明调用的是系统自带MySQL,可直接写全路径调用:/Applications/MAMP/Library/bin/mysql -u testing -p;如需长期生效,可在~/.zshrc或~/.bash_profile中添加export PATH="/Applications/MAMP/Library/bin:$PATH",执行source 对应配置文件路径后生效。
- MAMP默认MySQL端口为8889,系统默认MySQL端口为3306,直接执行
- 确认实例匹配后仍无法登录,可通过安全模式重置权限
- 先在MAMP面板停止MySQL服务
- 终端执行命令启动安全模式:
sudo /Applications/MAMP/Library/bin/mysqld_safe --skip-grant-tables --skip-networking,执行后不要关闭当前终端窗口 - 新开终端窗口,执行
/Applications/MAMP/Library/bin/mysql -u root直接进入MySQL控制台 - 控制台内依次执行以下命令重置权限:
FLUSH PRIVILEGES; -- 重置root用户密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '自定义root密码'; ALTER USER 'root'@'127.0.0.1' IDENTIFIED BY '自定义root密码'; -- 校验testing用户配置,主机为%的用户默认不支持localhost连接 SELECT user,host FROM mysql.user WHERE user='testing'; -- 重建localhost域的testing用户并授权 DROP USER IF EXISTS 'testing'@'localhost'; CREATE USER 'testing'@'localhost' IDENTIFIED BY '自定义testing用户密码'; GRANT ALL PRIVILEGES ON *.* TO 'testing'@'localhost'; FLUSH PRIVILEGES; - 关闭安全模式终端窗口,在MAMP面板重启MySQL服务即可正常登录
- phpMyAdmin创建用户注意事项
- 创建用户时主机项选择「本地」或填写
127.0.0.1,不要选择「任意主机(% )」,避免本地套接字连接被拦截 - 创建用户完成后需手动执行
FLUSH PRIVILEGES刷新权限,或退出phpMyAdmin重新登录确保配置生效
- 创建用户时主机项选择「本地」或填写
内容的提问来源于stack exchange,提问作者SebastianSrvn
相关产品推荐
相关产品推荐

