windows 安装mysql(多个版本同时安装)

在 Windows 系统中安装多个 MySQL 版本的核心是 避免端口冲突、配置独立目录、注册独立服务,以下是详细的分步教程(以安装 MySQL 5.7 和 MySQL 8.0 为例,其他版本流程一致):

一、准备工作

  1. 下载对应版本的 MySQL 安装包

    推荐下载 ZIP 免安装版 (无需卸载,配置灵活),官网地址:
    MySQL 历史版本下载

    选择对应版本(如 5.7.42、8.0.42)、操作系统(Windows)、位数(x86_64),下载 ZIP 包。

  2. 环境要求

    • 关闭已安装的 MySQL 服务(若有):cmd 中执行 net stop mysql(若服务名不同,需替换)。
    • 确保端口不冲突(默认 3306,第二个版本需用 3307 等未占用端口)。
    • 解压路径建议 无中文、无空格 (如 D:\tool\mysql\mysql-8.0.42、D:\tool\mysql\mysql-5.7.42`)。

二、安装第一个 MySQL 版本(以 5.7 为例)

步骤 1:解压并创建配置文件
  1. 将 MySQL 5.7 的 ZIP 包解压到目标路径(如 D:\tool\mysql\mysql-5.7.42)。

  2. 在解压目录下 新建 my.ini 配置文件 (复制以下内容,根据实际路径修改):

    ini 复制代码
    [mysqld]
    # 端口(第一个版本用默认 3306)
    port=3306
    # 安装目录(解压后的路径)
    basedir=D:\tool\mysql\mysql-5.7.42
    # 数据存储目录(手动创建 data 文件夹,或让初始化自动生成)
    datadir=D:\tool\mysql\mysql-5.7.42\data
    # 字符集(默认 utf8mb4,兼容 emoji)
    character-set-server=utf8mb4
    # 排序规则
    collation-server=utf8mb4_general_ci
    # 允许最大连接数
    max_connections=1000
    # 跳过密码验证(初始化后可删除)
    skip-grant-tables
    
    [mysql]
    # 客户端字符集
    default-character-set=utf8mb4
步骤 2:初始化 MySQL 并安装服务
  1. 管理员身份打开 cmd(重要!否则无权限安装服务)。

  2. 切换到 MySQL 5.7 的 bin 目录:

    cmd 复制代码
    cd /d D:\tool\mysql\mysql-5.7.42\bin
  3. 初始化数据库(生成 data 目录和临时密码,5.7 需此步骤,8.0 可省略但建议执行):

    cmd 复制代码
    mysqld --initialize-insecure --user=mysql
    • --initialize-insecure:无密码初始化(后续手动设密码)。
    • 执行成功后,解压目录会自动生成 data 文件夹。
  4. 安装 MySQL 服务(服务名需唯一,如 MySQL57):

    cmd 复制代码
    mysqld --install MySQL5.7.42 --defaults-file="D:\tool\mysql\mysql-5.7.42\my.ini"
    • 提示 Service successfully installed 表示服务安装成功。
  5. 启动服务:

    cmd 复制代码
    net start MySQL5,7.42
步骤 3:设置 root 密码
  1. 连接 MySQL(因配置了 skip-grant-tables,无需密码):

    cmd 复制代码
    mysql -u root -P 3306
  2. 执行 SQL 重置密码(替换 123456 为你的密码):

    sql 复制代码
    USE mysql;
    -- MySQL 5.7 密码字段是 authentication_string
    UPDATE user SET authentication_string=PASSWORD('123456') WHERE user='root';
    FLUSH PRIVILEGES;
    EXIT;
  3. 编辑 my.ini,删除 skip-grant-tables 一行,重启服务:

    cmd 复制代码
    net stop MySQL5.7.42
    net start MySQL5.7.42
  4. 验证连接:

    cmd 复制代码
    mysql -u root -p123456 -P 3306

    能进入 MySQL 命令行则表示第一个版本安装成功。

三、安装第二个 MySQL 版本(以 8.0 为例)

步骤 1:解压并创建独立配置文件
  1. 将 MySQL 8.0 的 ZIP 包解压到 不同目录 (如 D:\Program Files\MySQL\mysql-8.0.42)。
  2. 在解压目录下新建 my.ini,核心修改 端口、目录、服务名(避免冲突):
bash 复制代码
[mysqld]
# 1. 明确指定端口(必须非 0,且未被占用,如 3307/3308)
port=3308
# 2. 启用 TCP/IP 协议(Windows 必需,否则无法监听连接)
skip_networking=0
# 3. 绑定本地地址(允许本地连接,也可改为 0.0.0.0 允许远程连接)
bind-address=127.0.0.1
# 4. 安装目录(你的实际路径,双反斜杠或单斜杠)
basedir=D:\\tool\\mysql\\mysql-8.0.42
# 5. 数据目录(独立目录,无中文/空格)
datadir=D:\\tool\\mysql\\mysql-8.0.42\\data
# 6. 字符集配置
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
max_connections=1000
# 7. 可选:启用共享内存(Windows 辅助连接,避免协议缺失)
shared-memory=1
shared-memory-base-name=MySQL80

[mysql]
default-character-set=utf8mb4
步骤 2:初始化并安装独立服务
  1. 管理员 cmd 切换到 8.0 的 bin 目录:

    cmd 复制代码
    cd /d D:\Program Files\MySQL\mysql-8.0.42\bin
  2. 初始化数据库:

    cmd 复制代码
    mysqld --initialize-insecure --user=mysql
  3. 安装服务(服务名必须唯一,如 MySQL80):

    cmd 复制代码
    mysqld --install MySQL8.0.42 --defaults-file="D:\Program Files\MySQL\mysql-8.0.42\my.ini"
  4. 启动服务:

    cmd 复制代码
    net start MySQL8.0.42
步骤 3:设置 8.0 的 root 密码
  1. 连接 8.0(指定端口 3308):

    cmd 复制代码
    mysql -u root -P 3308
  2. 重置密码(MySQL 8.0 密码字段是 authentication_string,且不支持 PASSWORD() 函数):

    sql 复制代码
    USE mysql;
    -- 8.0 需用 ALTER 语句设密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
    FLUSH PRIVILEGES;
    EXIT;
  3. 编辑 8.0 的 my.ini,删除 skip-grant-tables,重启服务:

    cmd 复制代码
    net stop MySQL8.0.42
    net start MySQL8.0.42
  4. 验证连接:

    cmd 复制代码
    mysql -u root -p123456 -P 3308

    成功进入则表示第二个版本安装完成。

四、关键注意事项

  1. 端口必须唯一 :每个 MySQL 版本的 port 不能重复(如 3306、3307、3308 等),可通过 netstat -ano | findstr "3306" 检查端口是否被占用。

  2. 目录独立basedir(安装目录)、datadir(数据目录)必须分开,避免文件覆盖。

  3. 服务名唯一 :安装服务时 --install 后的名称(如 MySQL5.742、MySQL8.0.42)不能重复,可通过 services.msc 查看已注册的服务。

  4. 环境变量(可选) :无需添加多个 MySQL 的 bin 目录到系统环境变量,连接时通过 cd 切换到对应版本的 bin 目录,或指定完整路径(如 D:\Program Files\MySQL\mysql-8.0.36\bin\mysql -u root -p -P 3307)。

  5. 卸载方法 :若需删除某个版本,先停止服务,再删除服务,最后删除目录:

    cmd 复制代码
    net stop MySQL80  # 停止服务
    sc delete MySQL80  # 删除服务(或 mysqld --remove MySQL80)

五、多版本切换使用示例

  • 连接 MySQL 5.7(3306 端口):

    cmd 复制代码
    mysql -u root -p123456 -P 3306
  • 连接 MySQL 8.0(3308 端口):

    cmd 复制代码
    mysql -u root -p123456 -P 3308
  • 用 Navicat 等工具连接:需手动选择端口(3306/3308),其他配置与单版本一致。

通过以上步骤,即可在 Windows 上同时运行多个独立的 MySQL 版本,互不干扰。若需安装更多版本,重复"第二个版本"的流程,仅需修改端口、目录和服务名即可。

相关推荐
玉梅小洋10 小时前
Windows 10 Android 构建配置指南
android·windows
雨中风华16 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
·云扬·16 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
筵陌18 小时前
MySQL索引及其底层原理(上)
mysql
怣5018 小时前
MySQL子查询零基础入门教程:从小白到上手(零基础入门版)
数据库·mysql
yuuki23323318 小时前
【C++】继承
开发语言·c++·windows
非凡ghost18 小时前
PowerDirector安卓版(威力导演安卓版)
android·windows·学习·软件需求
猫头虎19 小时前
基于信创openEuler系统安装部署OpenTeleDB开源数据库的实战教程
数据库·redis·sql·mysql·开源·nosql·database
Nandeska19 小时前
17、MySQL InnoDB ReplicaSet
数据库·mysql
AI_567819 小时前
SQL性能优化全景指南:从量子执行计划到自适应索引的终极实践
数据库·人工智能·学习·adb