MacOS 12.5.1下通过Homebrew安装MariaDB权限问题求助
解决MacOS 12.5.1下Homebrew安装MariaDB的权限问题
问题根源
Homebrew安装的MariaDB在MacOS上默认给root@localhost使用auth_socket认证插件,而非密码认证。这意味着只有通过系统root权限(如sudo)启动的客户端才能以MariaDB root身份获得完整权限,普通密码登录的root实际是权限受限的用户(或残留的无效用户)。
修复步骤
1. 停止当前MariaDB服务
brew services stop mariadb
2. 跳过权限表启动MariaDB
这一步让你无需权限验证即可登录,以便修改用户权限:
mysqld_safe --skip-grant-tables &
3. 无密码登录MariaDB
mysql -u root
4. 调整root用户权限与认证方式
进入mysql系统库:
USE mysql;
选项A:切换为密码认证(推荐,适配多数场景)
将root用户改为密码认证并设置密码,同时授予完整权限:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
选项B:保留auth_socket认证(仅本地sudo登录场景)
如果只需要本地通过sudo操作数据库,直接刷新权限即可:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
5. 重启MariaDB服务
先关闭临时启动的无权限验证进程:
mysqladmin -u root shutdown
再用Homebrew重启服务:
brew services restart mariadb
验证修复
- 若选了选项A,用密码登录并测试建库:
mysql -u root -p
CREATE DATABASE wp_new;
- 若选了选项B,用sudo登录测试:
sudo mysql -u root
CREATE DATABASE wp_new;
额外说明
- 无需执行
mysql_install_db:Homebrew安装MariaDB时已经自动初始化了数据目录,重复执行会触发存在性提示。 mariadb-upgrade失败是因为之前的root用户权限不足,修复后可正常运行(若需要升级):
mariadb-upgrade -u root -p # 选项A用这个 # 或 sudo mariadb-upgrade -u root # 选项B用这个
内容的提问来源于stack exchange,提问作者Álvaro
相关产品推荐
相关产品推荐

