windows安装多台mysql数据库

老刘

Windows安装多个MySQL数据库的完整实操指南(新手友好版)

你好!在开发或测试时,一台Windows电脑上同时跑多个MySQL数据库超级常见,比如同时测试5.7和8.0版本,或者给不同项目分库。默认情况下,MySQL都占用3306端口,会冲突,但我给你一步步拆解,最清晰、最稳的方案。优先用免费的压缩包方式,简单不麻烦。

问题分析

Windows默认把第一个MySQL装成服务(MySQL),端口固定3306。如果直接再装第二个,就会提示“端口被占用”。解决办法是:给每个实例独立数据目录、端口、服务名,让它们互不干扰。关键参数包括:

  • port:端口号(不同实例用不同数字)
  • basedir:安装根目录
  • datadir:数据目录(必须新建,否则会报错)
  • server-id:唯一标识
  • socket或shared-memory-base-name:Windows独有,防冲突

准备工作(一次性搞定)

  1. 去官网下载MySQL压缩包(推荐不同版本测试用,相同版本也行)。

    • 不同版本:官网搜索“MySQL 8.0”或“MySQL 5.7”,选winx64解压版。
    • 相同版本:直接下载多个zIP(比如mysql-8.0.39-win64和另一个相同或不同子版本)。 官网地址:https://dev.mysql.com/downloads/
  2. 解压到不同目录:比如

    • D:\mysql1\mysql-8.0.39
    • D:\mysql2\mysql-8.0.39
      (或D:\mysql57\mysql-5.7.39)
  3. 新建数据目录:在每个解压根目录下新建一个叫data的文件夹(重要!)

安装第一个MySQL(作为基准)

以mysql1为例:

  1. 以管理员身份打开命令提示符(右键开始菜单“管理员命令提示符”)。
  2. 进入mysql1的bin目录:
    cd D:\mysql1\mysql-8.0.39\bin
  3. 初始化数据库(记录临时密码):
    mysqld --initialize --console (运行完会显示初始密码,复制保存!)
  4. 安装为Windows服务:
    mysqld --install mysql1
  5. 启动服务:
    net start mysql1
  6. 测试连接:
    mysql -u root -p(输入初始化密码,按回车)。
    输入 show databases; 看数据库列表。

安装第二个MySQL(关键步骤!)

以mysql2为例(端口3307):

  1. 同样进入mysql2的bin目录:
    cd D:\mysql2\mysql-8.0.39\bin

  2. 创建my.ini文件(用记事本新建,保存为my.ini):

    [mysqld]
    port=3307
    basedir=D:\mysql2\mysql-8.0.39
    datadir=D:\mysql2\mysql-8.0.39\data
    max_connections=200
    character-set-server=utf8
    default-storage-engine=INNODB
    server-id=2
    [client]
    port=3307
    default-character-set=utf8

    (端口、目录、server-id必须不同!)

  3. 初始化数据库:
    mysqld --defaults-file=my.ini --initialize --console
    (再记一次初始密码)

  4. 安装服务(用新配置文件):
    mysqld --install mysql2 --defaults-file=my.ini

  5. 启动服务:
    net start mysql2

  6. 测试连接:
    mysql -u root -p -P 3307(输入新密码)。

如果是相同版本的MySQL

步骤完全一样!只是解压目录、my.ini里的port和datadir不同,比如mysql2用3307和自己的data目录。MySQL服务名mysql1和mysql2也必须不同,否则冲突。

启动/停止多个MySQL

  • 启动所有:net start mysql1net start mysql2
  • 停止:net stop mysql1net stop mysql2
  • 管理:搜索“服务”控制面板,找到mysql1、mysql2,右键启动/停止。

连接客户端工具(Navicat、MySQL Workbench、命令行)

在客户端里填:

  • 主机名:localhost
  • 端口:对应上面mysql1用3306,mysql2用3307
  • 用户名:root
  • 密码:你设的或初始化密码

注意事项(避坑必读)

  • 端口冲突:任何时候别用3306再装新实例。
  • 数据目录:必须新建,否则mysqld启动不了。
  • 服务名:mysql1、mysql2必须不同,否则net start会失败。
  • 注册表(进阶):如果你用老方法装,服务名可能被注册成MySQL,要手动改注册表ImagePath路径(我一般不推荐新手这么干)。
  • 日志查看:每个实例都有自己的mysql_error.log文件,放在datadir里,查看错误用。
  • 重启电脑后:服务自动启动,但要确认net start命令没问题。
  • 安全:生产环境建议用密码+防火墙,只允许本地或特定IP连。

额外优化建议

  • 想更简单?可以用Docker一次性装多个MySQL容器(映射不同端口),但如果你是新手,先按上面手动装最稳。
  • 性能优化:每个实例datadir放不同硬盘,能提高速度。
  • 多个实例共存后,客户端工具里选不同端口连接。

搞定!现在你电脑上就有两个独立的MySQL数据库了,可以随意测试、开发了。如果遇到具体报错(比如初始化密码问题),把错误截图或命令输出告诉我,我再帮你细调。一步一步来,基本不会出错,祝你开发顺利!

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

发表评论

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

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

目录[+]