windows下安装两个mysql

老刘

Windows下安装两个MySQL:从零开始的完整实操教程

在Windows电脑上同时跑两个MySQL,是很多开发、测试和运维场景的刚需。比如一个跑MySQL 5.7兼容旧项目,另一个跑MySQL 8.0体验新特性;或者两个实例分别服务不同项目,端口、数据完全隔离,互不干扰。官方安装包默认只装一个服务,直接重复安装会冲突。下面用最稳妥的方式,一步步教你把两个MySQL装好并跑起来,全程适合电脑小白,每一步都写清楚,照着做就能成功。

为什么要装两个MySQL

单一实例虽然简单,但遇到版本冲突、端口占用、数据隔离需求时就很麻烦。两个实例可以:

  • 用不同端口(默认3306改成3307、3308)
  • 用不同数据目录,备份互不影响
  • 注册成不同Windows服务名,开机自启可控
  • 方便切换版本做兼容测试

整个过程免费,只需要官方安装包,不花额外钱。

准备工作(5分钟搞定)

  1. 确认系统:Windows 10/11 64位最稳,内存建议8GB以上。
  2. 下载MySQL:
    • 去MySQL官网下载页面,分别下两个版本(推荐一个5.7一个8.0,或者两个8.0)。
    • 选Windows (x86, 64-bit), MSI Installer(约300MB)。
    • 也可以下ZIP Archive(免安装版),后面会说更灵活。
  3. 关闭杀毒软件和防火墙临时拦截(装完再开)。
  4. 准备两个文件夹:例如 D:\MySQL57D:\MySQL80,用来放安装文件和数据,避免C盘占满。
  5. 记下管理员密码,后面要用。

方法一:用官方MSI安装两个实例(新手首选,图形界面)

先装第一个(默认3306),再自定义装第二个。

第一步:安装第一个MySQL(正常安装)

  1. 双击下载的MSI文件,选“Custom”自定义安装。
  2. 安装路径改成 D:\MySQL57,数据目录默认即可(或改成 D:\MySQL57\data)。
  3. 下一步选“Server only”,继续。
  4. 配置类型选“Development Computer”。
  5. 端口保持3306,勾选“Open Windows Firewall ports”。
  6. 设置root密码(强密码,写下来!)。
  7. Windows服务名用默认MySQL57或MySQL80(记住它)。
  8. 完成安装,启动服务。

测试:打开命令提示符(管理员),输入:

mysql -u root -p

输入密码能进就成功。

第二步:安装第二个MySQL(关键,改端口和服务名)

  1. 再双击另一个版本的MSI(或同一个再装一次)。
  2. 同样选Custom,路径改成 D:\MySQL80
  3. 数据目录改成 D:\MySQL80\data(必须不同!)。
  4. 配置时端口改成3307(或其他空闲端口,别用3306)。
  5. Windows服务名改成MySQL80(绝对不能重复)。
  6. root密码可以一样,也可以不同。
  7. 完成安装。

这时候Windows服务里会有两个:MySQL57(3306)和MySQL80(3307)。

方法二:用ZIP包安装(进阶,更干净,推荐有经验的用户)

MSI有时会残留注册表,ZIP版更纯净,适合多版本。

  1. 下载ZIP Archive,解压到 D:\MySQL57D:\MySQL80
  2. 在每个目录下新建my.ini文件(用记事本,另存为ANSI编码)。

第一个实例 my.ini 示例(D:\MySQL57\my.ini):

[mysqld]
port=3306
basedir=D:/MySQL57
datadir=D:/MySQL57/data
character-set-server=utf8mb4
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
port=3306
default-character-set=utf8mb4

第二个实例 my.ini(D:\MySQL80\my.ini):

[mysqld]
port=3307
basedir=D:/MySQL80
datadir=D:/MySQL80/data
character-set-server=utf8mb4
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
port=3307
default-character-set=utf8mb4

注意路径用正斜杠/,端口不同,数据目录不同。

  1. 初始化数据目录(管理员命令提示符):
    cd /d D:\MySQL57\bin
    mysqld --initialize-insecure --console

    (会生成临时root无密码,或加--initialize生成随机密码看控制台)

同样对第二个目录操作,端口3307的也初始化一次。

  1. 安装Windows服务:
    cd /d D:\MySQL57\bin
    mysqld --install MySQL57 --defaults-file=D:\MySQL57\my.ini
cd /d D:\MySQL80\bin
mysqld --install MySQL80 --defaults-file=D:\MySQL80\my.ini
  1. 启动服务:
    net start MySQL57
    net start MySQL80

测试两个实例是否正常

  1. 连接第一个:

    mysql -u root -p -P3306 -h127.0.0.1
  2. 连接第二个:

    mysql -u root -p -P3307 -h127.0.0.1
  3. 在服务管理器(services.msc)里看两个服务都是“正在运行”。

  4. 用Navicat、DBeaver或WorkBench分别新建连接,端口对应即可。

常见问题与避坑

  • 端口被占用:用 netstat -ano | findstr 3306 查,改掉冲突程序。
  • 服务启动失败:看错误日志(data目录下的.err文件),常见是路径写错或权限不够。
  • 中文乱码:my.ini里加character-set-server=utf8mb4,重启服务。
  • 忘记密码:停服务,用 --skip-grant-tables 启动临时改密码。
  • 开机自启:服务属性里设为“自动”。
  • 卸载干净:停服务 → 删除服务(sc delete MySQL57)→ 删文件夹 → 清注册表MySQL项。

进阶优化建议

  • 两个实例都加 innodb_buffer_pool_size(根据内存分,比如各1-2GB)。
  • 防火墙只开需要的端口。
  • 定期备份:用mysqldump分别备份两个数据目录。
  • 性能监控:装Percona Toolkit或用Windows性能监视器看CPU/内存。
  • 如果只是临时测试,用Docker跑多个MySQL容器更省事,但本教程专注原生安装。

按上面步骤做完,你的Windows上就有两个独立的MySQL了。端口隔离、数据分离、服务独立,日常开发完全够用。记住每次改配置后一定重启对应服务,路径和端口千万别写错。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,1人围观)

还没有评论,来说两句吧...

目录[+]