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

按照提示:

  1. 输入临时密码(安装时终端显示的密码)

  2. 设置新密码(建议8位以上包含大小写字母和数字)

  3. 移除匿名用户?输入Y

  4. 禁止root远程登录?根据需求选择

  5. 移除test数据库?建议Y

  6. 立即重载权限表?Y

1.2 图形化安装(适合纯新手)

步骤1:官网下载DMG包
访问MySQL官网选择:

  • macOS (x86, 64-bit), DMG Archive

  • 或Apple Silicon版本(M1/M2芯片)

步骤2:安装过程

  1. 双击下载的.dmg文件

  2. 拖动MySQL图标到Applications文件夹

  3. 打开系统偏好设置,底部会出现MySQL图标

  4. 点击"Initialize Database"初始化数据库

  5. 选择"Use Legacy Password Encryption"(兼容性好)

  6. 设置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:安装向导

  1. 双击.msi文件运行

  2. 选择安装类型:"Developer Default"(开发默认)

  3. 点击"Execute"安装依赖(可能需要等待)

  4. 产品配置界面:

    • 设置root密码(建议勾选"Add firewall exception")

    • 选择"Standalone MySQL Server"

    • 端口保持默认3306

  5. 勾选"Start the MySQL Server at System Startup"

  6. 最后点击"Execute"完成安装

步骤3:验证安装

  1. 打开命令提示符(cmd)

  2. 输入:

mysql -u root -p
  1. 输入设置的密码,看到mysql>提示符即成功

2.2 常见问题解决

问题1:服务无法启动

  • 检查3306端口是否被占用:

netstat -ano | findstr 3306
  • 如果被占用,可以在my.ini中修改端口:

[mysqld]
port=3307

问题2:忘记root密码

  1. 停止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
  1. 其他容器连接(同一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
  1. 开启查询日志(调试用):

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

五、可视化工具推荐

  1. MySQL Workbench(官方工具)

    • 适合执行复杂查询和ER图设计

    • 下载地址:https://dev.mysql.com/downloads/workbench/

  2. DBeaver(跨平台)

    • 支持多种数据库的统一管理

    • 社区版免费:DBeaver Community | Free Universal Database Tool

  3. 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?

  1. 控制面板卸载程序

  2. 删除C:\Program Files\MySQL和C:\ProgramData\MySQL

  3. 清理注册表(谨慎操作)

Q3:Docker容器启动失败怎么办?
检查日志定位问题:

docker logs mysql_dev

常见原因是:

  • 端口冲突(修改-p参数)

  • 挂载目录权限问题(chmod -R 777 ~/mysql_data)

Q4:如何升级MySQL版本?

  • Mac: brew upgrade mysql

  • Windows: 使用MySQL Installer的升级功能

  • Docker: 拉取新镜像后重新创建容器

结语

无论选择哪种安装方式,都建议:

  1. 安装完成后立即修改root密码

  2. 创建专用开发用户而非直接使用root

  3. 定期备份重要数据(特别是Docker方式)

MySQL的学习曲线可能会有些陡峭,但掌握安装和基础配置是重要的第一步。接下来可以尝试:

  • 创建你的第一个数据库

  • 学习基本的SQL查询语句

  • 探索索引优化等高级特性

如果有任何安装问题,建议查看MySQL官方文档或社区论坛,那里有丰富的解决方案。Happy coding!

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

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

相关文章

多模态大语言模型arxiv论文略读(七十九)

AIM: Let Any Multi-modal Large Language Models Embrace Efficient In-Context Learning ➡️ 论文标题:AIM: Let Any Multi-modal Large Language Models Embrace Efficient In-Context Learning ➡️ 论文作者:Jun Gao, Qian Qiao, Ziqiang Cao, Zi…

[Harmony]封装一个可视化的数据持久化工具

1.添加权限 在module.json5文件中添加权限 // 声明应用需要请求的权限列表 "requestPermissions": [{"name": "ohos.permission.DISTRIBUTED_DATASYNC", // 权限名称:分布式数据同步权限"reason": "$string:distrib…

利用html制作简历网页和求职信息网页

前言 大家好,我是maybe。今天下午初步学习了html的基础知识。做了两个小网页,一个网页是简历网页,一个网页是求职信息填写网页。跟大家分享一波~ 说明:我不打算上传图片。所以如果有朋友按照我的代码运行网页,会出现一个没有图片…

Vue 3 实现后端 Excel 文件流导出功能(Blob 下载详解)

💡 本文以告警信息导出为例,介绍 Vue 3 中如何通过 Axios 调用后端接口并处理文件流,实现 Excel 自动下载功能。 📑 目录 一、前言 二、后端接口说明 三、前端实现思路 四、导出功能完整代码 五、常见问题处理 六、效果展示 …

HarmonyOS AVPlayer 音频播放器

鸿蒙文档中心:使用AVPlayer播放视频(ArkTS)文档中心https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/video-playback 这张图描述的是 HarmonyOS AVPlayer 音频播放器的状态流转过程,展示了 AVPlayer 在不同状态之间的切换条件和关键操作…

Java面试场景:从音视频到AI应用的技术探讨

面试场景:音视频与AI应用技术的碰撞 在某互联网大厂的面试中,面试官王先生与求职者明哥展开了一场关于音视频技术与AI应用的对话。 第一轮提问:音视频场景 面试官:明哥,你能谈谈在音视频场景中,Spring B…

【深度学习】残差网络(ResNet)

如果按照李沐老师书上来,学完 VGG 后还有 NiN 和 GoogLeNet 要学,但是这两个我之前听都没听过,而且我看到我导师有发过 ResNet 相关的论文,就想跳过它们直接看后面的内容。 现在看来这不算是不踏实,因为李沐老师说如果…

Vue3学习(组合式API——父、子组件间通信详解)

目录 一、组合式API下的父组件传子组件。(自定义属性) (1)基本思想。 (2)核心注意点。(defineProps) (3)传递简单类型数据。 (4)传递对象类型数据。(v-bind"对象类型数据"…

W5500使用ioLibrary库创建TCP客户端

1、WIZnet全硬件TCP/IP协议栈 WIZnet全硬件TCP/IP协议栈,支持TCP,UDP,IPv4,ICMP,ARP,IGMP以及PPPoE协议。 以太网:支持BSD和WIZCHIP(W5500/W5300/W5200/W5100/W5100S)的SOCKET APIs驱动程序。 互联网: DHCP客户端 DNS客户端 FTP客…

管理Oracle Data Guard的最佳实践

Oracle Data Guard的中文名字叫数据卫士,顾名思义,它是生产库的一道保障。所以管理Data Guard是DBA的一项重要工作之一,管理Data Guard时主要有以下几个注意点需要引起重视。 备份库的归档日志积压 一般情况下,生产库的归档日志是…

BootCDN介绍(Bootstrap主导的前端开源项目免费CDN加速服务)

文章目录 BootCDN前端开源项目CDN加速服务全解析什么是BootCDN技术原理与架构CDN技术基础BootCDN架构特点1. 全球分布式节点网络2. 智能DNS解析系统3. 高效缓存管理机制4. 自动同步更新机制5. HTTPS和HTTP/2协议支持 BootCDN的核心优势速度与稳定性开源免费资源丰富度技术规范遵…

2025 Java 微信小程序根据code获取openid,二次code获取手机号【工具类】拿来就用

一、controller调用 /*** 登录** author jiaketao* since 2024-04-10*/ RestController RequestMapping("/login") public class LoginController {/*** 【小程序】登录获取session_key和openid** param code 前端传code* return*/GetMapping("/getWXSessionKe…

软件架构风格系列(3):管道 - 过滤器架构

文章目录 前言一、从生活场景到架构原理,看懂管道 - 过滤器的核心逻辑(一)什么是管道 - 过滤器架构?(二)核心组件拆解 二、架构设计图:一图看懂管道 - 过滤器架构全貌三、Java 示例代码&#xf…

【VIM】vim 常用命令

文章目录 插入模式光标移动拷贝/粘贴/删除/撤销块操作分屏代码缩进命令组合使用其他PowerVim 前言:本文内容大部分摘抄自酷壳和博客园   –   CoolShell – 陈皓   博客园 – 易先讯 插入模式 a → 在光标后插入o → 在当前行后插入一个新行O → 在当前行前插…

polarctf-web-[简单rce]

考点&#xff1a; (1)RCE(eval函数) (2)执行函数(passthru函数) (3)/顶级(根)目录查看 (4)sort排序查看函数 题目来源&#xff1a;Polarctf-web-[简单rce] 解题&#xff1a; 代码审计 <?php/*​PolarD&N CTF​*/highlight_file(__FILE__);function no($txt){ # …

HarmonyOs开发之———使用HTTP访问网络资源

谢谢关注&#xff01;&#xff01; 前言&#xff1a;上一篇文章主要介绍HarmonyOs开发之———Video组件的使用:HarmonyOs开发之———Video组件的使用_华为 video标签查看-CSDN博客 HarmonyOS 网络开发入门&#xff1a;使用 HTTP 访问网络资源 HarmonyOS 作为新一代智能终端…

Vue 图片预览功能(含缩略图)

众所周知&#xff0c;常见的组件库如Element、Ant Design&#xff0c;自带的图片预览功能都没有缩略图&#xff0c;所以 需要单独封装一个图片预览的服务。 第三方库&#xff1a;v-viewer 安装&#xff1a; npm install v-viewer viewerjs 若使用报错&#xff0c;可安装指定…

手写tomcat:基本功能实现(4)

逻辑架构 HTTP 请求与 Socket&#xff1a; 左侧的 “HTTP 请求” 箭头指向 “socket”&#xff0c;表示客户端发送的 HTTP 请求通过 socket 传输到服务器。Socket 负责接收请求&#xff0c;并提取出其中的 请求路径&#xff08;如 /first&#xff09;和 请求方法&#xff08;如…

jvm安全点(一)openjdk17 c++源码垃圾回收安全点信号函数处理线程阻塞

1. 信号处理入口​​ ​​JVM_HANDLE_XXX_SIGNAL​​ 是 JVM 处理信号的统一入口&#xff0c;负责处理 SIGSEGV、SIGBUS 等信号。​​javaSignalHandler​​ 是实际注册到操作系统的信号处理函数&#xff0c;直接调用 JVM_HANDLE_XXX_SIGNAL。 ​​2. 安全点轮询页的识别​​ …

微信小程序:封装表格组件并引用

一、效果 封装表格组件,在父页面中展示表格组件并显示数据 二、表格组件 1、创建页面 创建一个components文件夹,专门用于存储组件的文件夹 创建Table表格组件 2、视图层 (1)表头数据 这里会从父组件中传递表头数据,这里为columns,后续会讲解数据由来 循环表头数组,…