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 版本,互不干扰。若需安装更多版本,重复"第二个版本"的流程,仅需修改端口、目录和服务名即可。

相关推荐
喵行星2 小时前
MySQL XtraBackup 使用文档(全量 + 增量备份与恢复)
数据库·mysql·adb
dessler3 小时前
MYSQL-外键(Foreign Key)
linux·运维·mysql
q***98523 小时前
图文详述:MySQL的下载、安装、配置、使用
android·mysql·adb
Im5013 小时前
MySQL索引——从入门到出土
mysql
q***09803 小时前
在linux(Centos)中Mysql的端口修改保姆级教程
linux·mysql·centos
q***96584 小时前
如何在 Ubuntu 22.04 上安装 MySQL
linux·mysql·ubuntu
高铭杰7 小时前
mysql主备配置(对比postgresql)
数据库·mysql·replication
芳草萋萋鹦鹉洲哦10 小时前
【Windows】tauri+rust运行打包工具链安装
开发语言·windows·rust
会跑的兔子11 小时前
Android 16 Kotlin协程 第二部分
android·windows·kotlin