通过Homebrew安装MariaDB后无法访问,该如何解决?
解决Homebrew安装MariaDB后的登录问题
我来帮你搞定这个问题!我之前用Homebrew装MariaDB时也碰到过一模一样的登录困境,其实核心是别把系统root密码和MariaDB的root账号搞混,而且Homebrew安装的MariaDB有几个特殊的初始化逻辑,下面一步步来解决:
第一步:尝试直接无sudo登录(最可能成功)
Homebrew安装的MariaDB默认root账号是空密码,但绝对不要用sudo执行mysql命令——sudo会让你输入系统root的密码,而MariaDB的root和系统root是完全独立的两个账号。直接执行:
mysql -uroot
如果能直接进入MariaDB命令行,那问题就解决了!之后你可以用SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');来设置密码。
第二步:如果第一步失败,找临时初始化密码
有些版本的MariaDB在Homebrew安装时会自动生成临时密码,存放在日志里。查看日志的命令:
- Intel芯片Mac:
cat /usr/local/var/log/mariadb/mariadb.log | grep "temporary password"
- Apple Silicon芯片Mac:
cat /opt/homebrew/var/log/mariadb/mariadb.log | grep "temporary password"
找到类似[Note] A temporary password is generated for root@localhost: xxxxxxxx的行,把那串临时密码记下来,然后用命令登录:
mysql -uroot -p
输入刚才找到的临时密码,进入后就可以重置自己的密码了。
第三步:如果找不到临时密码,跳过权限表重置密码
如果上面两步都不行,那就强制跳过权限验证来重置密码:
- 先停止正在运行的MariaDB服务:
brew services stop mariadb
- 启动跳过权限表的MariaDB进程:
mysqld_safe --skip-grant-tables &
- 现在直接登录MariaDB,不需要密码:
mysql -uroot
- 在MariaDB命令行里执行以下SQL重置密码(把
your_new_password换成你想要的密码):
USE mysql; UPDATE user SET authentication_string=PASSWORD('your_new_password') WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES; EXIT;
- 关闭临时启动的MariaDB进程:
mysqladmin -uroot -p shutdown
输入你刚设置的新密码,确认关闭。
6. 重启正常的MariaDB服务:
brew services start mariadb
现在就可以用新密码登录了:
mysql -uroot -p
小提示
- Homebrew安装的MariaDB默认只绑定
localhost,本地开发完全够用,不需要额外修改配置。 - 以后登录MariaDB时,除非特殊情况,都不要加
sudo,避免混淆系统和数据库的账号权限。
内容的提问来源于stack exchange,提问作者Sidney Sousa
相关产品推荐
相关产品推荐

