通过brew安装mysql@5.7后服务自动启停且登录报错求助
解决brew安装mysql@5.7的服务异常与登录权限问题
一、处理服务状态不稳定(时而started时而stopped)
- 查看mysql崩溃日志定位原因:
执行命令查看实时日志,找到服务异常启停的具体诱因(比如端口冲突、权限错误、配置问题):tail -f /usr/local/var/log/mysqld.log - 检查端口占用情况:
mysql默认使用3306端口,执行以下命令确认是否被其他进程占用:
如果存在占用,要么杀掉对应进程(lsof -i :3306kill -9 进程PID),要么修改mysql配置文件/usr/local/etc/my.cnf,添加port=3307这类自定义端口后重启服务。 - 修复数据目录权限:
brew安装的mysql数据目录权限异常会导致服务崩溃,执行以下命令重置权限:sudo chown -R _mysql:_mysql /usr/local/var/mysql - 重新初始化服务:
先彻底停止服务,再手动启动验证稳定性:
如果手动启动后服务稳定,再切换回brew管理:brew services stop mysql@5.7 mysql.server startbrew services start mysql@5.7
二、解决登录报错ERROR 1045 (28000): Access denied for user 'aakarshit'@'localhost' (using password: NO)
这个报错是因为你直接执行mysql(未指定root用户),mysql默认用当前系统用户名aakarshit尝试登录,但该用户未在mysql中创建或无权限。
方法1:用root用户登录
- 如果是首次登录,先从日志里提取root临时密码:
grep 'temporary password' /usr/local/var/log/mysqld.log - 用临时密码登录root:
登录后可修改root密码:mysql -u root -pALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
方法2:创建并授权aakarshit用户
登录root用户后,执行以下SQL创建用户并赋予全权限:
CREATE USER 'aakarshit'@'localhost' IDENTIFIED BY '设置你的密码'; GRANT ALL PRIVILEGES ON *.* TO 'aakarshit'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
之后就可以用mysql -u aakarshit -p输入密码登录。
方法3:重置root密码(忘记密码或无法登录时)
- 停止服务:
brew services stop mysql@5.7 - 启动安全模式跳过权限验证:
mysqld_safe --skip-grant-tables & - 无密码登录root:
mysql -u root - 修改root密码:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; - 重启服务:
brew services restart mysql@5.7
内容的提问来源于stack exchange,提问作者Aakarshit
相关产品推荐
相关产品推荐

