MySQL安装实战指南:Mac、Windows与Docker全平台详解
MySQL作为世界上最流行的开源关系型数据库,是每位开发者必须掌握的基础技能。本指南将手把手带你完成三大平台的MySQL安装,从下载到配置,每个步骤都配有详细说明和截图,特别适合新手学习。
一、Mac系统安装MySQL
1.1 通过Homebrew安装(推荐)
步骤1:安装Homebrew(如未安装)
打开终端(Terminal)执行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
步骤2:使用brew安装MySQL
brew install mysql
安装完成后会看到类似输出:
==> Pouring mysql-8.0.26.arm64_big_sur.bottle.tar.gz
==> Caveats
We've installed your MySQL database without a root password...
步骤3:启动MySQL服务
brew services start mysql
验证服务状态:
brew services list
正常应显示:
mysql started yourusername /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
步骤4:安全初始化(设置密码)
mysql_secure_installation
按照提示:
-
输入临时密码(安装时终端显示的密码)
-
设置新密码(建议8位以上包含大小写字母和数字)
-
移除匿名用户?输入Y
-
禁止root远程登录?根据需求选择
-
移除test数据库?建议Y
-
立即重载权限表?Y
1.2 图形化安装(适合纯新手)
步骤1:官网下载DMG包
访问MySQL官网选择:
-
macOS (x86, 64-bit), DMG Archive
-
或Apple Silicon版本(M1/M2芯片)
步骤2:安装过程
-
双击下载的.dmg文件
-
拖动MySQL图标到Applications文件夹
-
打开系统偏好设置,底部会出现MySQL图标
-
点击"Initialize Database"初始化数据库
-
选择"Use Legacy Password Encryption"(兼容性好)
-
设置root密码(务必记住!)
步骤3:配置PATH环境变量
在终端执行:
echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
二、Windows系统安装MySQL
2.1 使用MySQL Installer(推荐)
步骤1:下载安装包
官网下载Windows MSI Installer:
-
选择"MySQL Installer for Windows"
-
下载体积较大的完整版(约400MB)
步骤2:安装向导
-
双击.msi文件运行
-
选择安装类型:"Developer Default"(开发默认)
-
点击"Execute"安装依赖(可能需要等待)
-
产品配置界面:
-
设置root密码(建议勾选"Add firewall exception")
-
选择"Standalone MySQL Server"
-
端口保持默认3306
-
-
勾选"Start the MySQL Server at System Startup"
-
最后点击"Execute"完成安装
步骤3:验证安装
-
打开命令提示符(cmd)
-
输入:
mysql -u root -p
-
输入设置的密码,看到
mysql>
提示符即成功
2.2 常见问题解决
问题1:服务无法启动
-
检查3306端口是否被占用:
netstat -ano | findstr 3306
-
如果被占用,可以在my.ini中修改端口:
[mysqld]
port=3307
问题2:忘记root密码
-
停止MySQL服务:
net stop mysql
2. 创建初始化文件reset.txt,内容:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
3.启动MySQL跳过权限检查:
mysqld --init-file=C:\\reset.txt --console --skip-grant-tables
三、Docker方式安装MySQL
3.1 快速启动MySQL容器
步骤1:安装Docker
-
Mac: 下载Docker Desktop for Mac
-
Windows: 下载Docker Desktop for Windows
步骤2:拉取MySQL镜像
docker pull mysql:8.0
推荐指定版本号而非使用latest标签
步骤3:启动容器
docker run --name mysql_dev \-e MYSQL_ROOT_PASSWORD=yourpassword \-p 3306:3306 \-v ~/mysql_data:/var/lib/mysql \-d mysql:8.0 \--character-set-server=utf8mb4 \--collation-server=utf8mb4_unicode_ci
参数说明:
-
-v
:挂载数据卷避免数据丢失 -
最后两个参数设置UTF8MB4编码(支持emoji)
3.2 常用Docker命令
查看运行中的容器:
docker ps
查看MySQL日志:
docker logs -f mysql_dev
进入容器bash:
docker exec -it mysql_dev bash
停止/启动容器:
docker stop mysql_dev
docker start mysql_dev
3.3 连接MySQL容器
宿主机连接:
mysql -h 127.0.0.1 -P 3306 -u root -p
-
其他容器连接(同一Docker网络):
mysql -h mysql_dev -u root -p
四、安装后基础配置
4.1 创建新用户(避免使用root)
CREATE USER 'devuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'devuser'@'%';
FLUSH PRIVILEGES;
4.2 基础安全设置
修改默认端口(编辑my.cnf/my.ini):
[mysqld]
port=3307
-
开启查询日志(调试用):
general_log = 1
general_log_file = /var/log/mysql/query.log
4.3 性能优化配置(8GB内存机器示例)
[mysqld]
innodb_buffer_pool_size = 4G
innodb_log_file_size = 256M
max_connections = 200
thread_cache_size = 10
table_open_cache = 4000
五、可视化工具推荐
-
MySQL Workbench(官方工具)
-
适合执行复杂查询和ER图设计
-
下载地址:https://dev.mysql.com/downloads/workbench/
-
-
DBeaver(跨平台)
-
支持多种数据库的统一管理
-
社区版免费:DBeaver Community | Free Universal Database Tool
-
-
TablePlus(Mac/Win付费)
-
界面美观,响应速度快
-
官网:TablePlus | Modern, Native Tool for Database Management
-
常见问题FAQ
Q1:Mac安装后mysql命令找不到?
A:执行以下命令创建符号链接:
sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
Q2:Windows下如何彻底卸载MySQL?
-
控制面板卸载程序
-
删除C:\Program Files\MySQL和C:\ProgramData\MySQL
-
清理注册表(谨慎操作)
Q3:Docker容器启动失败怎么办?
检查日志定位问题:
docker logs mysql_dev
常见原因是:
-
端口冲突(修改-p参数)
-
挂载目录权限问题(chmod -R 777 ~/mysql_data)
Q4:如何升级MySQL版本?
-
Mac:
brew upgrade mysql
-
Windows: 使用MySQL Installer的升级功能
-
Docker: 拉取新镜像后重新创建容器
结语
无论选择哪种安装方式,都建议:
-
安装完成后立即修改root密码
-
创建专用开发用户而非直接使用root
-
定期备份重要数据(特别是Docker方式)
MySQL的学习曲线可能会有些陡峭,但掌握安装和基础配置是重要的第一步。接下来可以尝试:
-
创建你的第一个数据库
-
学习基本的SQL查询语句
-
探索索引优化等高级特性
如果有任何安装问题,建议查看MySQL官方文档或社区论坛,那里有丰富的解决方案。Happy coding!
相关文章:

MySQL安装实战指南:Mac、Windows与Docker全平台详解
MySQL作为世界上最流行的开源关系型数据库,是每位开发者必须掌握的基础技能。本指南将手把手带你完成三大平台的MySQL安装,从下载到配置,每个步骤都配有详细说明和截图,特别适合新手学习。 一、Mac系统安装MySQL 1.1 通过Homebre…...

Rocky Linux 远程服务器画面GUI传输到本地显示教程——Xming
Rocky Linux 远程服务器画面GUI传输到本地显示教程——Xming 下载Xming安装Xming安装Xming字体Xming的使用设置测试 Xming可以提供GUI环境,在Linux服务器上执行GUI应用时,可通过Xming在Windows上执行GUI操作。 下载Xming 下载链接:https://…...
出现 org.apache.catalina.starup.HostConfig.deployDirectory 把web 应用程序部署到目录 解决方法
目录 前言1. 问题所示2. 原理分析3. 解决方法前言 爬虫神器,无代码爬取,就来:bright.cn Java基本知识: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新)临近毕业,很多人问的项目都是JSP这一类,普遍都是tomca…...

游戏引擎学习第283天:“让‘Standing-on’成为一个更严谨的概念
如果同时使用多个OpenGL上下文,并且它们都有工作负载,GPU或GPU驱动程序如何决定调度这些工作?我注意到Windows似乎优先处理活动窗口的OpenGL上下文(即活动窗口表现更好),挺有意思的…… 当多个OpenGL上下文…...

React集成百度【JSAPI Three】教程(001):快速入门
文章目录 1、快速入门1.1 创建react项目1.2 安装与配置1.3 静态资源配置1.4 配置百度地图AK1.5 第一个DEMO1、快速入门 JSAPI Three版本是一套基于Three.js的三维数字孪生版本地图服务引擎,一套引擎即可支持2D、2.5D、3D全能力的地理投影与数据源加载,帮助开发者轻松搞定平面…...

python学习day2
今天主要学习了变量的数据类型,以及如何使用格式化符号进行输出。 一、认识数据类型 在python里为了应对不同的业务需求,也把数据分为不同的类型。 代码如下: """ 1、按类型将不同的变量存储在不同的类型数据 2、验证这些…...
VAPO:视觉-语言对齐预训练(对象级语义)详解
简介 多模态预训练模型(Vision-Language Pre-training, VLP)近年来取得了飞跃发展。在视觉-语言模型中,模型需要同时理解图像和文本,这要求模型学习二者之间的语义对应关系。早期方法如 VisualBERT、LXMERT 等往往使用预先提取的图像区域特征和文本词嵌入拼接输入,通过 T…...
C语言学习笔记之函数
文章目录 1、函数的基本用法2、函数的参数传递2.1 全局变量2.2 复制传递方式2.3 地址传递方式 3、函数的传参—数组4、指针函数5、递归函数和函数指针5.1 递归函数5.2 函数指针5.3 函数指针数组 1、函数的基本用法 函数是一个完成特定功能的代码模块,其程序代码独立…...
集合进阶2
Java不可变集合、Stream流与方法引用深度解析 一、不可变集合(Immutable Collections)进阶指南 1.1 不可变集合核心特性 防御性编程:防止外部修改数据(如传递集合给第三方库时)线程安全:天然支持多线程读…...
2025云上人工智能安全发展研究
随着人工智能(AI)技术与云计算的深度融合,云上AI应用场景不断扩展,但安全挑战也日益复杂。结合2025年的技术演进与行业实践,云上AI安全发展呈现以下关键趋势与应对策略: 一、云上AI安全的主要挑战 数据泄露…...

【C++】模版(1)
目录 1. 泛型编程 2. 函数模版 2.1 函数模版概念 2.2 函数模版格式 2.3 函数模版的原理 2.4 函数模版实例化方式 隐式实例化 显式实例化 2.5 模版参数的匹配原则 3. 模版类 模版类的定义格式 模版类的实例化 1. 泛型编程 如何实现一个通用的交换函数呢?…...

基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的去中心化商业扩散研究
摘要:本文探讨在去中心化商业趋势下,开源AI智能名片链动21模式S2B2C商城小程序源码如何助力企业挖掘数据价值、打破信息孤岛,实现商业高效扩散。通过分析该技术组合的架构与功能,结合实际案例,揭示其在用户关系拓展、流…...

5月19日day30打卡
模块和库的导入 知识点回顾: 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 作业:自己新建几个不同路径文件尝试下如何导入 一、导入官方库 …...

白杨SEO:不到7天,白杨SEO博客网站百度搜索显示和排名恢复正常!顺带说说上海线下GEO聚会分享和播客红利
大家好,我是白杨SEO,专注SEO十年以上,全网SEO流量实战派,AI搜索优化研究者。 5月开始,明显就忙起来了,不管是个人陪跑还是企业顾问,不管是需要传统SEO还是新媒体流量,还是当下这个A…...
Windows软件插件-音视频捕获
下载本插件 音视频捕获就是获取电脑外接的话筒,摄像头,或线路输入的音频和视频。 本插件捕获电脑外接的音频和视频。最多可以同时获取4个视频源和4个音频源。插件可以在win32和MFC程序中使用。 使用方法 首先,加载本“捕获”DLL,…...
go 与面向对象编程(OOP)
Go 语言在设计上与传统面向对象(OOP)语言(如 Java、C)有明显差异,官方明确表示它并非纯面向对象语言。然而,它通过独特的方式实现了部分面向对象的核心特性。以下是关键分析: 1. Go 对传统 OOP…...
Mergekit——任务向量合并算法Ties解析
Mergekit——高频合并算法 TIES解析 Ties背景Ties 核心思想具体流程总结 mergekit项目地址 Mergekit提供模型合并方法可以概况为四大类:基本线性加权、基于球面插值、基于任务向量 以及一些专业化方法,今天我们来刷下基于任务向量的ties合并方法…...

Java 应用中的身份认证与授权:OAuth2.0 实现安全的身份管理
Java 应用中的身份认证与授权:OAuth2.0 实现安全的身份管理 在当今的软件开发领域,身份认证与授权是构建安全可靠应用的关键环节。而 Java 作为广泛使用的编程语言,在实现这一功能上有着诸多成熟的框架和方案。其中,OAuth2.0 凭借…...

【氮化镓】偏置对GaN HEMT 单粒子效应的影响
2025年5月19日,西安电子科技大学的Ling Lv等人在《IEEE Transactions on Electron Devices》期刊发表了题为《Single-Event Effects of AlGaN/GaN HEMTs Under Different Biases》的文章,基于实验和TCAD仿真模拟方法,研究了单粒子效应对关断状态、半开启状态和开启状态下AlG…...

Mysql 索引概述
索引(index)是帮助Mysql高效获取数据的数据结构 索引优点:1. 提高排序效率 2. 提高查询效率 索引缺点:1.索引占用空间(可忽略)2.索引降低了更新表的速度,如进行insert,update,delette 时效率降…...
HttpServletRequest常用功能简介-笔记
javax.servlet.http.HttpServletRequest 是 ServletRequest 接口的子接口,专用于处理 HTTP 协议相关的请求。它提供了访问请求行、请求头、请求参数以及请求属性等方法。 1.请求行(Request Line) ✅ 功能说明 请求行包含客户端发送的 HTTP …...

解决RAGFlow部署中镜像源拉取的问题
报错提示 Error response from daemon: Get "https://registry-1.docker.io/v2/ ": context deadline exceeded 解决方法 这个原因是因为拉取镜像源失败,可以在/etc/docker/daemon.json文件中添加镜像加速器,例如下面所示 {"registry…...

uniapp打包H5,输入网址空白情况
由于客户预算有限,最近写了两个uniapp打包成H5的案例,总结下面注意事项 1. 发行–网站-PCWeb或手机H5按钮,输入名称,网址 点击【发行】,生成文件 把这个给后端,就可以了 为什么空白呢 最重要一点…...
wsl2中Ubuntu22.04配置静态IP地址
第一步找到/etc/netplan目录下的01-netcfg.yaml文件,(如果不存在则自己创建一个)在里面配置一下代码: network:version: 2renderer: networkdethernets:eth0:dhcp4: noaddresses: [192.168.3.222/24]routes:- to: 0.0.0.0/0via: …...

C++(21):fstream的读取和写入
目录 1 ios::out 2 ios::in和is_open 3 put()方法 4 get()方法 4.1 读取单个字符 4.2 读取多个字符 4.3 设置终结符 5 getline() 1 ios::out 打开文件用于写入数据。如果文件不存在,则新建该文件;如果文件原来就存在,则打开时清除…...

NAT/代理服务器/内网穿透
目录 一 NAT技术 二 内网穿透/内网打洞 三 代理服务器 一 NAT技术 跨网络传输的时候,私网不能直接访问公网,就引入了NAT能讲私网转换为公网进行访问,主要解决IPv4(2^32)地址不足的问题。 1. NAT原理 当某个内网想访问公网,就必…...

Unity 多时间源Timer定时器实战分享:健壮性、高效性、多线程安全与稳定性能全面解析
简介 Timer 是一个 Unity 环境下高效、灵活的定时任务调度系统,支持以下功能: •支持多种时间源(游戏时间 / 非缩放时间 / 真实时间) •支持一次性延迟执行和重复执行 •提供 ID、回调、目标对象等多种查询和销毁方式 •内建…...
深入解析Spring Boot与Spring Security的集成实践
深入解析Spring Boot与Spring Security的集成实践 引言 Spring Security是Spring生态中用于处理认证和授权的强大框架。在Spring Boot项目中集成Spring Security可以轻松实现用户认证、权限控制等功能。本文将详细介绍如何从零开始集成Spring Security,并解决实际…...

【iOS】探索消息流程
探索消息流程 Runtime介绍OC三大核心动态特性动态类型动态绑定动态语言 方法的本质代码转换objc_msgSendSELIMPMethod 父类方法在子类中的实现 消息查找流程开始查找快速查找流程慢速查找流程二分查找方法列表父类缓存查找 动态方法解析动态方法决议实例方法类方法优化 消息转发…...
用户账号及权限管理:企业安全的基石与艺术
在当今数字化时代,用户账号及权限管理已成为企业IT安全体系中不可或缺的核心组件。它不仅是保护敏感数据的第一道防线,更是确保业务运营效率和合规性的关键。本文将深入探讨用户账号及权限管理的重要性、最佳实践以及实施策略,助您构建一个安全、高效且灵活的访问控制体系。…...