MySQL之Windows下MySQL5.7x.与MySQL8.0.x版本共存安装

MySQL之Windows下多版本共存安装

场景:老项目跑的MySQL5.7.x,而新项目中用到了MySQL8.0.x,为了开发或测试方便在同一台主机上同时安装MySQL5.7x与MySQL8.0.x,这里以Windows为例安装MySQL的多个版本。

前提:

  1. 如windows系统过中已经安装过了MySQL5.7.x,现在要安装MySQL8.0.x,则具体安装步骤如下

  2. 这里以安装mysql-8.0.21-x64为例

1. my.ini配置如下:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
 
[mysqld]
# 设置3307端口
port = 3307
# 设置mysql的安装目录
basedir=F:\\mysql-8.0.21-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=F:\\mysql-8.0.21-winx64\\data #8.0以下版本需要配置数据目录
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认密码策略,这里设置为以前的,兼容客户端无法连接的问题
default_authentication_plugin=mysql_native_password

2. 安装

# 1.初始化,已经安装过了mysql5.7.x,这里需要指定--defaults-file
mysqld --defaults-file=F:\\mysql-8.0.21-winx64\my.ini --initialize --console

# 2. 安装,这里指定服务名为MySQL8,并带上 --defaults-file
mysqld --install MySQL8 --defaults-file=F:\\mysql-8.0.21-winx64\my.ini
# 上面命令安装后虽然注册了名称为MySQL8的服务,但是使用net star MySQL8 提示启动错误,因为已经安装过了Mysql5,用的MySQL5命令,所以需要修改注册表 

3. 修改注册表

1.cmd命令行窗口中输入regedit,打开注册表
2.找HKEY_LOCAL_HACHINE\SYSTEM\CurrentControlSet\services
3.在services中找到MySQL8并选中,然后再右边的名称列中找到ImagePath,然后双击ImagePath会弹出“编辑字符串”的窗口;
4.将编辑字符窗口中,数值数据由
F:\\mysql-5.7.26-winx64\bin\mysqld --defaults-file=F:\\mysql-5.7.26-winx64\my.ini idmMysql8
改为
F:\\mysql-8.0.21-winx64\bin\mysqld --defaults-file=F:\\mysql-8.0.21-winx64\my.ini idmMysql8
5.然后使用命令 net start mysql8 启动服务即可

4. 登录

# 注意:多个版本登录时需要戴上端口号,不带默认登录3306端口的mysql
mysql -u root -p [安装时产生的密码,如CB.o+wFSV3ij] -P 3307

# 远程 mysql -h ip -u root -P 3307 -p密码 , 如下:
mysql -h 192.168.31.112 -u root  -P 3307 -pCB.o+wFSV3ij

5. 修改root用户密码

登录成功后根据安装时给出的root用户密码修改用户密码

alter user 'root'@'localhost' identified by 'yuan'
# 或
alter user 'root'@'localhost' identified with mysql_native_password  by 'yuan';
### 同一台机器上安装并配置MySQL 8.0MySQL 5.7共存 #### 安装准备 确保操作系统支持多实例安装,并拥有足够的资源来运行多个数据库服务。对于Linux环境,创建独立的用户组用户用于管理不同的MySQL版本可以提高安全性[^4]。 #### 下载解压软件包 针对所需的操作系统下载对应版本的MySQL压缩文件,可以从官方档案库获取MySQL 5.7版本[^1];而最新版即为MySQL 8.0可直接通过官方网站获得。完成下载后,在各自的目录下解压缩这些文件到指定位置。 #### 配置初始化参数设置 每个MySQL实例都需要单独的数据目录服务名称以便区分。例如,当在Windows环境下操作时,可以通过命令`mysql --install MySQL80` 来注册名为"MySQL80"的服务,从而实现其他已存在服务区分开来的目的[^5]。 #### 修改my.cnf/my.ini配置文件 为防止端口冲突以及数据存储路径混淆等问题的发生,应当分别为两个版本编写特定的配置文件(如Linux下的`/etc/my.cnf.d/server-5.7.cnf` `/etc/my.cnf.d/server-8.0.cnf`, 或者 Windows 中 `C:\ProgramData\MySQL\MySQL Server 5.7\my.ini` 及 `C:\ProgramData\MySQL\MySQL Server 8.0\my.ini`) ,其中需定义不同监听端口号(默认情况下分别是33063307),socket 文件名以及其他必要的选项。 #### 初始化数据库并启动服务 按照各自版本的要求执行相应的初始化脚本,之后分别启动这两个服务。注意检查日志输出确认无误后再继续下一步骤。 ```bash # 对于 Linux 系统上的 MySQL 5.7 mysqld --initialize-insecure --user=mysql --basedir=/path/to/mysql57 --datadir=/var/lib/mysql57/ # 对于 Linux 系统上的 MySQL 8.0 mysqld --initialize-insecure --user=mysql --basedir=/path/to/mysql80 --datadir=/var/lib/mysql80/ ``` 最后验证两套系统的正常运作情况,尝试连接至各个服务器以确保一切按预期工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值