当前位置: 首页 > news >正文

Mac 本地安装 MySQL 学习指南

用途:本地开发、学习 SQL、搭建测试环境
系统要求:macOS 10.15 (Catalina) 及以上 (Sonoma / Ventura / Monterey 等)
工具:Homebrew(包管理器) + MySQL 8.0
特点:全程使用命令行,简单、高效,适合初学者。


✅ 第一步:安装 Homebrew(如果还没装)

打开终端(Terminal),粘贴以下命令:

/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

检查是否成功

brew--version

你应该看到类似输出:

Homebrew 4.0+

✅ 第二步:用 Homebrew 安装 MySQL

brewinstallmysql

⏱️注意:安装过程可能需要几分钟,请耐心等待下载和编译完成。


✅ 第三步:启动 MySQL 服务

安装完成后,启动 MySQL 并设置开机自启:

brew services start mysql

验证是否运行中

brew services|grepmysql

看到状态为started✅ 表示成功。


✅ 第四步:设置 MySQL 初始安全配置

首次安装后,必须运行安全向导来设置密码、删除匿名用户等。

mysql_secure_installation

按提示操作如下:

  1. Validate Password Plugin?(是否启用密码强度验证插件?)
    • 输入N(学习阶段不需要复杂验证,方便记忆)
  2. Set root password?(设置 root 密码?)
    • 输入Y
    • 输入新密码(例如:root123),并再次确认。
  3. Remove anonymous users?(删除匿名用户?)
    • 输入Y
  4. Disallow root login remotely?(禁止 root 远程登录?)
    • 输入Y(学习阶段禁止远程登录更安全)
  5. Remove test database and access to it?(删除测试数据库?)
    • 输入Y
  6. Reload privilege tables now?(重新加载权限表?)
    • 输入Y

✅ 完成后,MySQL 就安全配置好了!


✅ 第五步:登录 MySQL

mysql-uroot-p

输入你刚才设置的密码(如root123)。如果进入如下界面,说明登录成功:

Welcome to the MySQL monitor... mysql>

🎉恭喜!你现在可以开始学习 SQL 了!


✅ 第六步:创建第一个数据库和表(练习用)

mysql>命令行中执行以下 SQL 语句:

-- 1. 创建数据库CREATEDATABASEtestdb;-- 2. 使用数据库USEtestdb;-- 3. 创建表CREATETABLEusers(idINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(50),ageINT,emailVARCHAR(100));-- 4. 插入数据INSERTINTOusers(name,age,email)VALUES('张三',25,'zhangsan@example.com');INSERTINTOusers(name,age,email)VALUES('李四',30,'lisi@example.com');-- 5. 查询数据SELECT*FROMusers;

预期输出:

+----+--------+-----+----------------------+ | id | name | age | email | +----+--------+-----+----------------------+ | 1 | 张三 | 25 | zhangsan@example.com | | 2 | 李四 | 30 | lisi@example.com | +----+--------+-----+----------------------+

✅ 第七步:常用命令速查

命令说明
mysql -u root -p登录 MySQL
SHOW DATABASES;查看所有数据库
USE dbname;切换/使用某个数据库
SHOW TABLES;查看当前库所有表
SELECT VERSION();查看 MySQL 版本
exit\q退出 MySQL

✅ 第八步:停止/重启 MySQL(可选)

# 停止服务brew services stop mysql# 重启服务brew services restart mysql# 查看状态列表brew services list|grepmysql

✅ 第九步:卸载 MySQL(如果以后不需要)

⚠️警告:以下步骤会清空所有数据,请谨慎操作!

# 1. 停止服务brew services stop mysql# 2. 卸载软件brew uninstall mysql# 3. 删除数据文件 (彻底清理)rm-rf/usr/local/var/mysql# 如果是 Apple Silicon (M1/M2/M3),路径可能是:# rm -rf /opt/homebrew/var/mysql

💡 学习资源推荐

资源网址
MySQL 官方文档(中文)https://dev.mysql.com/doc/
W3C MySQL 教程https://www.w3school.com.cn/sql/index.asp
SQLZoo(交互式练习)https://sqlzoo.net/
LeetCode SQL 题库https://leetcode.cn/problemset/database/

✅ 常见问题(FAQ)

❓ 登录时报错:Access denied for user 'root'@'localhost'

原因:密码错误。
解决方法:重置 root 密码。

  1. 停止服务:
    brew services stop mysql
  2. 跳过权限验证启动:
    mysqld_safe --skip-grant-tables&
  3. 无密码登录:
    mysql-uroot
  4. 在 MySQL 中执行:
    FLUSHPRIVILEGES;ALTERUSER'root'@'localhost'IDENTIFIEDBY'newpassword';EXIT;
  5. 重启正常服务:
    brew services start mysql

❓ 提示command not found: mysql

原因:环境变量未配置(常见于 Apple Silicon M1/M2/M3 芯片)。
解决方法

  1. 将 Homebrew bin 目录加入 PATH:
    echo'export PATH="/opt/homebrew/bin:$PATH"'>>~/.zshrc
  2. 使配置生效:
    source~/.zshrc

🔐 安全加固:核实和修改 MySQL监听的网络接口

⚠️ 风险提示

默认配置下,如果 MySQL 绑定到0.0.0.0,意味着它监听所有网络接口

  • 正常情况:外网 ❌ 无法连接本地 MySQL。
  • 危险情况:如果绑定0.0.0.0且防火墙放行,黑客可直接扫描并尝试爆破你的数据库。

类比:这就像你家门开着,钥匙放在门口,写着“欢迎来拿”。

✅ 如何检查你是否真的“被外网访问”?

1. 查看 MySQL 绑定地址

登录 MySQL 后执行:

SHOWVARIABLESLIKE'bind_address';
  • 安全127.0.0.1(仅允许本机连接)
  • 危险0.0.0.0(监听所有 IP,外网可达)
2. 查看有哪些用户可以从远程登录
SELECTUser,HostFROMmysql.userWHEREHost!='localhost';

如果看到'root'@'%''admin'@'%',说明这些账号允许从非本机登录。

3. 检查系统监听端口

在终端运行:

lsof-i:3306
  • 如果看到TCP *:3306 (LISTEN),表示监听所有 IP。
  • 如果看到TCP localhost:mysql (LISTEN)127.0.0.1:mysql,表示仅监听本地。

🛡️ 正确做法总结

你要做什么推荐方式
本地开发学习✅ 只允许127.0.0.1,不对外
团队协作测试✅ 用后端 API 提供数据,不要暴露 DB
需要远程访问✅ 用 SSH 隧道、VPN 或堡垒机,严禁直接开放 3306 端口

✅ 如何修复?→ 改为只监听本地(推荐方案)

方法一:使用~/.my.cnf(最简单、无需 sudo)

这是最推荐个人开发者使用的方法,避免权限问题。

  1. 创建/编辑配置文件

    nano~/.my.cnf
  2. 输入以下内容

    [mysqld] bind-address = 127.0.0.1
  3. 保存并退出

    • Ctrl + OEnter(保存)
    • Ctrl + X(退出)
  4. 重启 MySQL 生效配置

    brew services restart mysql
  5. 验证是否生效
    登录 MySQL 并执行:

    SHOWVARIABLESLIKE'bind_address';

    ✅ 正确输出应为:

    +---------------+-----------+ | Variable_name | Value | +---------------+-----------+ | bind_address | 127.0.0.1 | +---------------+-----------+
方法二:编辑全局配置(如果需要系统级配置)
  1. 编辑配置文件(路径可能因 Homebrew 版本而异):

    # Intel Macsudonano/usr/local/etc/my.cnf# Apple Silicon Mac (M1/M2/M3)sudonano/opt/homebrew/etc/my.cnf
  2. [mysqld]段落下添加:

    [mysqld] bind-address = 127.0.0.1
  3. 保存并重启:

    brew services restart mysql

✅ 额外安全建议(必做)

  1. 清理远程用户
    如果发现root@%或其他%结尾的用户,建议删除或限制:

    DROPUSER'root'@'%';-- 或者改为强密码ALTERUSER'root'@'%'IDENTIFIEDBY'StrongPass!2025';

    本地开发通常只需要root@localhost

  2. 开启 macOS 防火墙

    • 前往:系统设置网络防火墙打开
    • 防止未经授权的入站连接。
  3. 严禁使用 ngrok/frp 暴露 3306 端口

    • 调试 Web 服务可以用 ngrok 转发 80/443 端口。
    • 绝对不要用来转发数据库端口!

最终总结

🔐记住一句话:
“数据库不是网站,不应该让全世界都能连。”
你应该像保护银行卡密码一样保护你的 MySQL。

项目当前状态建议
bind_address*(监听所有)❌ 危险
实际风险如果网络开放,可能被连
修复方法设置bind-address = 127.0.0.1✅ 立即做
是否影响本地使用❌ 不影响命令行、TablePlus、DBeaver 等工具照常可用
http://www.cnnetsun.cn/news/3999826.html

相关文章:

  • FanControl 风扇控制软件完整指南:5 步调校 Windows 风扇转速
  • 【字串】【困难】滑动窗口最大值
  • 【收藏必看2026版】普通人零门槛入局AI!大模型成程序员高薪最优解
  • Python环境搭建与核心语法实战:从入门到工程化的十年经验总结
  • 打造真正有利于优化的网站建设方案,从底层逻辑重构你的网站流量
  • Perplexity Agent API与Kimi K3实战:构建自主任务执行AI智能体
  • AI编程助手生态之争:Codex与Claude Code的部署自由与配置实战
  • 大气层系统Atmosphere:Nintendo Switch破解终极完整指南
  • GitHub 下载慢怎么办?免费开源插件 Fast-GitHub 加速指南
  • PvZWidescreen 宽屏补丁完整指南:把《植物大战僵尸》的黑边变成你的新战场
  • 网站建设基本流程规范:揭秘从0到1打造高转化官网的硬核指南
  • Google Gemma 4全栈开源模型:从云端到移动端的部署与优化实战
  • T检验、卡方检验与方差分析:数据分析三大核心统计检验原理与应用指南
  • 思源宋体CN实战指南:从零开始掌握专业级中文排版
  • Simulink S函数从入门到精通:自定义模块开发与C MEX实战
  • SPT-AKI存档编辑器:免费离线版修改工具的完整上手指南
  • 第24章 质量评估指标
  • AI漫剧怎么制作?如何用IP-Adapter和LoRA解决角色一致性难题
  • 2026年潍坊做智慧燃气安全监管平台的公司有哪些?
  • [硬件笔记] 保险丝选型
  • 北方高寒地区专网无线电对讲机通信工程标准化施工与落地工艺:防寒、防凝露、防雷、防水、供电、勘测全规范摘要
  • 个体工商户如何通过低成本网站建设实现品牌升级与业务增长的全攻略
  • 华为OD机试备考指南:高频算法与工程实践解析
  • Oracle Apex与主流IM平台深度集成:架构设计与工程实践
  • 片上MBQC技术:硅光芯片如何为百万比特光量子计算开辟新路径
  • AnyLabeling实战:基于SAM与YOLO-World的本地自动标注环境搭建与避坑指南
  • 网站建设素材网:设计师与开发者的宝藏库与避坑指南
  • 如何在5分钟内为MusicBee安装终极网易云歌词插件
  • 深入解析Claude Code记忆系统:令牌、上下文窗口与注意力机制
  • 【关个机机Max】震撼发布!全新UI!更多功能与优化