不要羡慕别人的精彩,走好自己的路就好,一份付出,一份收获,相信自己能行,并坚持到底。

windows10系统上安装多个解压版的MySQL数据库

小紫念沁
MySQL
2023-10-11
1849字
大约6.16分钟
8
近几年,MySQL数据库越来越流行,使用率非常高,经常会遇到开发环境和生产环境中,MySQL的版本不一致的问题,那如何解决这个问题呢?下面就来介绍一下,如何在同一台电脑中装多个不同版本的MySQL服务。本篇文章以windows10系统安装MySQL 5.7.42 和MySQL 8.0.33这2个不同版本的MySQL为例进行举例说明。

1 MySQL多版本安装

windows系统上,MySQL数据库的安装方式有2种MSI InstallerZIP Archive。本文主要讲解通过ZIP Archive解压缩包的方式,安装配置MySQL 5.7.42MySQL 8.0.33 2个不同版本的MySQL数据库实例。

下文中的MySQL5MySQL8分别为MySQL 5.7.42MySQL 8.0.33的简称,同时也是对应版本的MySQL服务名称,下文中统一用MySQL5代指MySQL 5.7.42MySQL8代指MySQL 8.0.33`。

1.1 MySQL官网

1、MySQL最新版本下载地址:https://dev.mysql.com/downloads/mysql/,选择当前稳定的MySQL版本和对应的操作系统,然后下载压缩包,如下图所示:

2、MySQL历史版本下载地址:https://downloads.mysql.com/archives/community/,选择对应的MySQL历史版本和操作系统,然后下载压缩包,如下图所示:

1.2 MySQL下载

1、分别选择MySQL 5.7.42MySQL 8.0.33windows版本,并下载压缩包文件至本地。
2、分别加压缩至D:\MySQL\mysql-5.7.42-winx64D:\MySQL\mysql-8.0.33-winx64

2 MySQL5.7.42安装

将免安装版的MySQL 5.7.42解压到希望安装的目录。本次示例选择的目录是:D:\MySQL\mysql-5.7.42-winx64

2.1 配置my.ini文件

如果解压后的MySQL 5.7.42安装包里有my-default.ini,则复制一份改为my.ini;如果没有my-default.ini则新建一个my.ini文件。

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3307端口
port = 3307
# 设置mysql的安装目录和数据存放目录
basedir=D:\MySQL\mysql-5.7.42-winx64
datadir=D:\MySQL\mysql-5.7.42-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#跳过数据库权限验证 skip the password
skip_grant_tables
# 配置Sql Mode
sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

注意:

my.ini还需要加跳过密码登录的配置,否则在初次登陆时会报:ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)

2.2 安装MySQL

1、以管理员身份运行cmd,进入MySQL 5.7.42的bin目录下。
2、输入mysqld --initialize-insecure --user=mysql回车,此时在MySQL 5.7.42根目录下会生成一个data文件夹。
3、执行以下命令,安装MySQL5

mysqld install MySQL5 --defaults-file="D:\MySQL\mysql-5.7.42-winx64\my.ini"

备注:

1、MySQL5可改为任意名称,它是安装后的MySQL服务名,用于区分不同版本的MySQL;defaults-file=“my.ini的存放目录”。
2、MySQL5初始化后,会在根目录生产data文件夹,查看.err文件是否存在错误,如果存在错误,无法启动。

2.3 查看注册表

1、运行regedit打开注册表,到HKEY_LOCAL_MACHINE–>SYSTEM–>CurrentControlSet–>Services 下找到MySQL5名称的注册表。
2、查看mysqld.exe文件和my.ini文件是否是本次安装MySQL5时的文件,如果不是一定要修改,不然在启动MySQL5服务时会报错,并且无法成功启动。

2.4 运行MySQL

1、以管理员身份运行cmd
2、执行以下命令,启动MySQL5服务

net start MySQL5

2.5 登录MySQL

1、如果安装MySQL5时使用的是3306端口,登录的命令:mysql -uroot -p
2、如果安装MySQL5时使用的是其他端口,登录时的命令:mysql -P端口 -uroot -p
3、这时会提示你输入密码。如果在my.ini里配置了跳过密码验证skip_grant_tables,则不需要输入,不然就需要打开MySQL根目录下的data文件夹,找到后缀是.err的文件以文本打开找到password临时密码(可以ctrl+f搜索)然后在cmd中输入该临时密码。
4、修改root账号密码

set password for root@localhost = password('新密码');

注意:

1、skip-grant-tablesMySQL登录时跳过数据库权限验证,无需输入密码。但是在修改密码时会报错:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
2、通过刷新权限flush privileges;解决上面错误问题,此时便可以修改密码。
3、上面修改密码命令,只适用于MySQL5.X以下版本。

5、刷新权限

flush privileges;

6、退出MySQL

exit;

7、首次登录后,密码已修改完毕,更改my.ini里设置的跳过密码配置。先停止MySQL5服务,注释掉skip-grant-tables,然后重启MySQL5服务即可。

3 MySQL8.0.33安装

将免安装版的MySQL 8.0.33解压到希望安装的目录。本次示例选择的目录是:D:\MySQL\mysql-8.0.33-winx64

3.1 配置my.ini文件

如果解压后的MySQL 8.0.33安装包里有my-default.ini,则复制一份改为my.ini;如果没有my-default.ini则新建一个my.ini文件。

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录和数据存放目录
basedir=D:\MySQL\mysql-8.0.33-winx64
datadir=D:\MySQL\mysql-8.0.33-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
authentication_policy=mysql_native_password
# 配置Sql Mode
sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

3.2 安装MySQL

1、以管理员身份运行cmd,进入MySQL8.0.33bin目录下。
2、执行初始化命令,输入mysqld --initialize回车,此时在MySQL8.0.33根目录下会生成一个data文件夹。注意:这个命令不需要附加参数,即不需要指定my.ini配置文件

mysqld --initialize

3、执行命令,安装MySQL8

mysqld install MySQL8

注意:

1、这个命令不需要附加参数,即不需要指定my.ini配置文件。如果和安装5.7.42时一样指定my.iniMySQL8服务在安装完毕后,启动时会启动失败,原因未知。
2、MySQL8可改为任意名称,它是MySQL8安装后的MySQL服务名。

3.3 运行MySQL

1、以管理员身份运行cmd
2、执行以下命令,启动MySQL8服务

net start MySQL8

3.4 登录MySQL

1、如果安装MySQL8时使用的是3306端口,登录的命令:mysql -uroot -p
2、如果安装MySQL8时使用的是其他端口,登录时的命令:mysql -P端口 -uroot -p
3、到data文件夹下,查找.err类型的文件查看密码。
4、登陆成功后可修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

5、刷新权限

flush privileges;

6、退出MySQL

exit;

3 篇尾小结

1、MySQL安装核心就是注册安装MySQL服务为不同名称的系统应用,并运行在不同的端口上。
2、通过命令mysqld -install安装MySQL时,默认应用名为MySQL,可以通过mysqld -install MySQL8变更应用名称。
3、MySQL5.XMySQL8.X在安装时,除了配置文件my.ini中参数存在和SQL执行命令存在差异,大的步骤基本一致。
4、MySQL环境变量是不需要强制配置的。加到path里面只是为了全局都可以用mysql.exe,mysqladmin.exe等命令,如果不加我们如果要通过cmd来打开mysql的话就每次都先cd到bin目录下面,依然可以执行相关命令。安装多个版本MySQL,配置了环境变量,切换还比较麻烦。

更新时间:2024-03-04T12:05:16
文章目录