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

news2025/6/8 7:56:24

加群联系作者vx:xiaoda0423

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

https://1024bat.cn/

https://github.com/webVueBlog/fastapi_plus

https://webvueblog.github.io/JavaPlusDoc/

使用docker搭建常用开发环境

  1. docker安装mysql

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

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 的依赖)时,缓存文件丢失或损坏,导致:

Error: No such file or directory @ rb_sysopen - ...

✅ 解决步骤如下:

① 清理 Homebrew 的下载缓存

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

brew cleanup -s
rm -rf ~/Library/Caches/Homebrew/*
② 重新尝试安装 MySQL
brew install mysql@8.0

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


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

brew install libevent

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


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

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

  • https://ghcr.io/v2/homebrew/core/libevent/manifests/2.1.12

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

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

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

brew config
brew doctor
ls -lh ~/Library/Caches/Homebrew/downloads/

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


✅ 安装命令

brew install mysql
brew services start mysql

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

安装完成后,MySQL 通常:

  • 允许你用 root 用户以空密码登录

  • 或者启用了 auth_socket 插件(无密码,靠本地 socket 登录)

你可以直接尝试:

mysql -u root

或者:

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

🔍 查看 MySQL 安装版本

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

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

mysql_secure_installation

该命令将引导你:

  • 设置 root 密码

  • 删除匿名用户

  • 禁止远程 root 登录

  • 删除 test 数据库


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

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):


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

# 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

✅ 验证是否已卸载干净:

which mysql
# 应无输出

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

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

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

  • Homebrew 安装推荐:

    brew install mysql
    brew services start mysql

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2403895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git小乌龟不显示图标状态解决方案

第一步 在开始菜单的搜索处,输入regedit命令,打开注册表。 第二步 在注册表编辑器中,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers 这一项。 第三步 让Tortoise相关的项目排在前…

获取 OpenAI API Key

你可以按照以下步骤来获取 openai.api_key,用于调用 OpenAI 的 GPT-4、DALLE、Whisper 等 API 服务: 🧭 获取 OpenAI API Key 的步骤: ✅ 1. 注册或登录 OpenAI 账号 打开 https://platform.openai.com/ 使用你的邮箱或 Google/…

【Android基础回顾】五:AMS(Activity Manager Service)

Android 的 AMS(Activity Manager Service)是 Android 系统中的核心服务之一,负责管理整个应用生命周期、任务栈、进程和四大组件(Activity、Service、BroadcastReceiver、ContentProvider)的运行。它运行在系统进程 s…

pycharm中提示C++ compiler not found -- please install a compiler

1.最近用pycharm编译一个开源库,编译的依赖c compiler 2.单单使用pycharm编译,编译器报错C compiler not found – please install a compiler 3.需要在配置环境中引入对应库 4.从新编译后没有提示:C compiler not found – please install a compiler错误。

一站式直播工具:助力内容创作者高效开启直播新时代

近年来,随着互联网技术的不断进步和短视频、直播行业的爆发式增长,越来越多的企业和个人投入到直播电商、互动娱乐、在线教育等场景。直播运营过程中,涉及到数据统计、弹幕互动、流程自动化、内容同步等诸多环节。如何提升运营效率、减少人工…

以智能管理为基础,楼宇自控打造建筑碳中和新路径

在全球气候变化的严峻形势下,“碳中和”已成为各国发展的重要战略目标。建筑行业作为能源消耗与碳排放的“大户”,其运行阶段的能耗占全社会总能耗近40%,碳排放占比与之相当,实现建筑碳中和迫在眉睫。传统建筑管理模式下&#xff…

day029-Shell自动化编程-计算与while循环

文章目录 1. read 交互式初始化变量1.1 案例-安装不同的软件1.2 案例-比较大小 2. 计算2.1 bc2.2 awk2.3 expr2.4 let2.5 案例-计算内存的空闲率2.6 案例-检查域名过期时间和https整数过期时间 3. 循环3.1 循环控制语句3.2 for循环-c语言格式3.3 while循环3.3.1 案例-猜数字3.3…

Linux命令基础(2)

su和exit命令 可以通过su命令切换到root账户 语法:su [-] 用户名 -符号是可选的,表示是否在切换用户后加载环境变量,建议带上 参数:用户名,表示要切换的用户,用户名可以省略,省略表示切换到ro…

vue3 + vite实现动态路由,并进行vuex持久化设计

在后台管理系统中,如何根据后端返回的接口,来动态的设计路由呢,今天一片文章带你们解 1、在vuex中设置一个方法 拿到完整的路由数据 const state {routerList: []}; const mutations { dynameicMenu(state, payload) {// 第一步 通过glob…

学习路之php--性能优化

一、php周边优化 二、代码级优化 变量管理‌ 及时unset()释放大数组/对象,减少内存占用局部变量访问速度比全局变量快约2倍,优先使用局部变量大数组采用引用传递(&$var)避免内存 循环优化‌ 预计算循环次数: …

GC1808:高性能24位立体声音频ADC芯片解析

1. 芯片简介 GC1808 是一款24位立体声音频模数转换器(ADC),支持96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于家庭影院、蓝牙音箱等场景。 核心特性 高精度:24位分辨率,…

echarts使用graph、lines实现拓扑,可以拖动增加effect效果

options.js // import React from react // import * as echarts from echartsimport ./index.lessexport const useEchartsOptionFun ({ nodeDataList, getNodeLinksDataList, getLinesCoordsFun }) > {const option {title: {text: 拓扑关系图,top: top,left: center,}…

产品经理课程(九)

从需求到功能设计 (一)复习 产品规划:产品定位、阶段性计划 产品定位:产品画布(9个步骤;最重要的是先解决什么问题) (Roadmap)目标要素:时间、事项、里程碑…

从零开始开发纯血鸿蒙应用之网络检测

从零开始开发纯血鸿蒙应用 〇、前言一、认识 connection 模块1、获取默认网络2、获取网络能力信息3、解析网络能力信息3.1、NetCap3.2、NetBearType 二、实现网络检测功能1、申请权限2、获取默认网路的 NetCap 数组 三、总结 〇、前言 在之前的博文里,介绍了如何实…

向 AI Search 迈进,腾讯云 ES 自研 v-pack 向量增强插件揭秘

作者:来自腾讯云刘忠奇 2025 年 1 月,腾讯云 ES 团队上线了 Elasticsearch 8.16.1 AI 搜索增强版,此发布版本重点提升了向量搜索、混合搜索的能力,为 RAG 类的 AI Search 场景保驾护航。除了紧跟 ES 官方在向量搜索上的大幅优化动…

【win | docker开启远程配置】使用 SSH 隧道访问 Docker的前操作

在主机A pycharm如何连接远程主机B win docker? 需要win docker配置什么? 快捷配置-主机B win OpenSSH SSH Server https://blog.csdn.net/z164470/article/details/121683333 winR,打开命令行,输入net start sshd,启动SSH。 或者右击我的电脑&#…

股指期货波动一个点多少钱?

很多朋友在交易股指期货时,都会好奇一个问题:股指期货波动一个点,我的账户里到底是赚了还是亏了多少钱?要搞清楚这个问题,其实很简单,只需要了解两个关键信息:股指期货的“交易单位”&#xff0…

iOS、Android、鸿蒙、Web、桌面 多端开发框架Kotlin Multiplatform

Kotlin Multiplatform(简称 KMP)是 JetBrains 推出的开源跨平台开发框架 Kuikly 是腾讯开源的跨端开发框架,基于 Kotlin Multiplatform 技术构建,为开发者提供了技术栈更统一的跨端开发体验 KMP 不仅局限于移动端,它…

探索C++标准模板库(STL):String接口的底层实现(下篇)

前引:在C的面向对象编程中,对象模型是理解语言行为的核心。无论是类的成员函数如何访问数据,还是资源管理如何自动化,其底层机制均围绕两个关键概念展开:this指针与六大默认成员函数。它们如同对象的“隐形守护者”&am…

Flutter知识点汇总

Flutter架构解析 1. Flutter 是什么?它与其他移动开发框架有什么不同? Flutter 是 Google 开发的开源移动应用开发框架,可用于快速构建高性能、高保真的移动应用(iOS 和 Android),也支持 Web、桌面和嵌入式设备。。它与其他移动开发框架(如 React Native、Xamarin、原…