MacOS BigSur运行MariaDB服务正常执行mysql命令报2002错误求助
解决方案
- 清理残留的官方MySQL服务
日志中存在com.oracle.oss.mysql.mysqld服务与brew安装的MariaDB冲突,且该服务依赖的/usr/local/mysql目录不存在,导致服务启动循环崩溃,连带影响MariaDB进程无法正常运行:
- 停止并卸载官方MySQL开机启动项
sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist sudo rm /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
- 清理官方MySQL残留文件
sudo rm -rf /usr/local/mysql sudo rm -rf /Library/PreferencePanes/MySQL* sudo rm -rf /Library/Receipts/mysql*
- 修复MariaDB数据目录权限并重新初始化
- 先停止当前异常的MariaDB服务
brew services stop mariadb
- 修复数据目录所有者权限
sudo chown -R $(whoami):admin /usr/local/var/mysql
- 重新初始化MariaDB数据目录
mariadb-install-db --user=$(whoami) --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql
- 重启服务并验证
- 启动MariaDB服务
brew services start mariadb
- 等待3秒后查看服务状态,确认状态为
started无报错
brew services list
- 直接用当前用户身份登录,无需加sudo
mysql -u root
注:之前
brew services返回成功仅代表启动请求已提交给系统调度,实际进程因冲突反复崩溃退出,所以不存在sock文件才会触发2002报错。brew安装的本地开发环境MariaDB默认使用系统用户身份验证,不需要sudo执行命令,也无需初始密码。
内容的提问来源于stack exchange,提问作者Md Aman Ullah
相关产品推荐
相关产品推荐

