分布式微服务系统架构第144集:FastAPI全栈开发教育系统

加群联系作者vx:xiaoda0423

仓库地址:webvueblog.github.io/JavaPlusDoc...

1024bat.cn/

github.com/webVueBlog/...

webvueblog.github.io/JavaPlusDoc...

使用docker搭建常用开发环境

  1. docker安装mysql
bash 复制代码
docker run --restart=always -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD="123456" \
-v /Users/mayingfa/Development/docker/mysql/conf:/etc/mysql/conf.d \
-v /Users/mayingfa/Development/docker/mysql/logs:/var/log/mysql \
-v /Users/mayingfa/Development/docker/mysql/data:/var/lib/mysql \
-d mysql
  1. docker安装redis
bash 复制代码
docker run --restart=always -p 6379:6379 --name redis \
-v /Users/mayingfa/Development/docker/redis/redis.conf:/etc/redis/redis.conf \
-v /Users/mayingfa/Development/docker/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf --appendonly yes

你现在遇到的问题是 Homebrew 在尝试安装 libevent(MySQL 的依赖)时,缓存文件丢失或损坏,导致:

yaml 复制代码
Error: No such file or directory @ rb_sysopen - ...

✅ 解决步骤如下:

① 清理 Homebrew 的下载缓存

这会清掉所有可能损坏的 .tar.gz.incomplete 或已失效的缓存包:

javascript 复制代码
brew cleanup -s
rm -rf ~/Library/Caches/Homebrew/*

② 重新尝试安装 MySQL

css 复制代码
brew install mysql@8.0

Homebrew 会自动重新下载依赖 libevent 等,确保是干净环境。


🔍 你也可以单独试试是否能安装 libevent:

复制代码
brew install libevent

如果 libevent 安装成功,再继续安装 MySQL 即可。


✅ 可选:确认依赖包下载正常(联网情况良好)

可通过访问以下链接测试是否能正常访问 Homebrew 源(GitHub Packages):

如果访问不了,可能是网络(如防火墙或 DNS)问题。此时可以切换到清华源:

arduino 复制代码
export HOMEBREW_BREW_GIT_REMOTE=https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
export HOMEBREW_CORE_GIT_REMOTE=https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

如果还有问题,贴一下这几个命令的输出:

bash 复制代码
brew config
brew doctor
ls -lh ~/Library/Caches/Homebrew/downloads/

使用 Homebrew 安装的 MySQL,默认密码行为如下:


✅ 安装命令

sql 复制代码
brew install mysql
brew services start mysql

🔑 默认 root 密码说明(重点):

安装完成后,MySQL 通常:

  • 允许你用 root 用户以空密码登录
  • 或者启用了 auth_socket 插件(无密码,靠本地 socket 登录)

你可以直接尝试:

复制代码
mysql -u root

或者:

bash 复制代码
mysql -u root -p
# 如果提示输入密码,直接按 Enter,表示密码为空

🔍 查看 MySQL 安装版本

bash 复制代码
mysql --version
# 示例输出:
# mysql  Ver 8.0.36 for macos13.4 on x86_64 (Homebrew)

✅ 如何设置 root 密码(建议设置)

复制代码
mysql_secure_installation

该命令将引导你:

  • 设置 root 密码
  • 删除匿名用户
  • 禁止远程 root 登录
  • 删除 test 数据库

🛠 如果你想显式设置 root 密码(跳过引导)

sql 复制代码
mysql -u root
# 登录后执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES;

🧠 总结

项目 默认值
用户名 root
密码 空(或者 socket 登录)
登录方式 mysql -u root
MySQL 安装路径 /opt/homebrew/opt/mysql(M1)或 /usr/local/opt/mysql(Intel)

要彻底卸载 Mac 上本地安装的 MySQL(包括通过 .pkg 安装的官方版本) ,请按照以下步骤操作(支持 macOS Intel 与 M1/M2):


🔥 一键卸载命令(推荐你一条条执行观察):

bash 复制代码
# 1. 停止 MySQL 服务
sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 2>/dev/null
sudo pkill -f mysqld

# 2. 删除 MySQL 安装目录(默认 /usr/local/mysql)
sudo rm -rf /usr/local/mysql
sudo rm -rf /usr/local/mysql*

# 3. 删除系统启动项、配置和支持文件
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/MySQL.prefPane
sudo rm -rf /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
sudo rm -rf ~/Library/PreferencePanes/MySQL.prefPane

# 4. 删除数据库文件
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql/data

# 5. 删除配置文件
sudo rm -f /etc/my.cnf
sudo rm -f /etc/my.cnf.*

# 6. 删除 shell 相关残留
sudo rm -f /usr/local/bin/mysql*
sudo rm -f /usr/local/bin/mysqld*

# 7. 可选:清理 Homebrew 的 mysql(如果你也曾用 brew 装过)
brew uninstall mysql
brew cleanup

✅ 验证是否已卸载干净:

bash 复制代码
which mysql
# 应无输出

ps aux | grep mysqld
# 不应再有 mysqld 相关进程

📦 如果你后续要重新安装:

  • 官方 MySQL 安装包: dev.mysql.com/downloads/m...

  • Homebrew 安装推荐:

    sql 复制代码
    brew install mysql
    brew services start mysql

如你有多个版本混装(例如 Homebrew 和 .pkg 安装共存),可进一步排查 /usr/local/bin/mysql 是哪个版本指向。

需要我帮你写个自动卸载脚本或判断 MySQL 残留的诊断命令也可以说一声。

相关推荐
fthux38 分钟前
总想着“忙完再休息”?让 Tick Rest 提醒你,先歇一会儿
开源·github·mac·swift·提醒·消息提醒·tick rest·tick rest for mac·消息提醒app
努力的小郑1 小时前
数据查到了,回答去哪儿了?一次百炼 + LangChain 排查实录
后端·langchain·agent
dong_junshuai1 小时前
每天一个开源项目#156 Astryx:主题编译、异步按钮与源码接管
github
isfox2 小时前
Python 虚拟环境:别再把所有项目塞进一个"大仓库"了
后端
易师傅2 小时前
技术面试已死?AI 时代,真正拉开程序员差距的是什么?
前端·后端·程序员
苍何2 小时前
办公 Agent 权威评测榜单出炉了,豆包第一
后端
AiMan2 小时前
别再把秘塔会话逐个点开:这可把秘塔多个会话一次导出?AI导出鸭
前端·后端·面试
nice_lcj5203 小时前
【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端
java·后端·spring·spring ai·ai应用开发
卷无止境3 小时前
mathmodel-figure-templates 以及两个上手案例
后端·python
Moment3 小时前
写给迷茫的应届生,怎样在 AI 时代争取更多机会
前端·后端·面试