mysql下载安装配置以及多版本

mysql下载安装配置以及多版本

1.下载

https://downloads.mysql.com/archives/community/

点击链接

选择Product Version(产品版本),操作系统(Operating System)和OS Version(操作系统版本)

点击ZIP Archive行末的Download下载压缩包版本即可,MSI Installer是安装包版本(一般有压缩包就用压缩包即可)。

我选择的是5.7.44和8.4.2两个版本,更多版本或其他版本原理一样,请自行测试。

2.安装

在E盘新建文件夹mysql,把两个压缩包拷贝到E:/mysql目录下,

解压到当前文件夹,删除两个压缩包。

如果是安装包版本,请自行安装到同一目录下,方便管理。

3.配置

配置5.7.44版本

进入E:\mysql\mysql-5.7.44-winx64目录,新建data空文件夹和my.ini配置文件

编辑my.ini文件,设置mysql安装目录和mysql数据库数据的存放目录

[mysqld]

# 端口

port = 3306

# mysql安装目录

basedir=E:\\mysql\\mysql-5.7.44-winx64

# mysql数据库数据的存放目录

datadir=E:\\mysql\\mysql-5.7.44-winx64\\data

# 允许最大连接数

max_connections=200

# 允许连接失败的次数。

max_connect_errors=10

# 服务端使用的字符集

character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 传统的基于密码的认证

default_authentication_plugin=mysql_native_password

# 启用后可以绕过权限验证,一般用于重置密码时临时开启

# skip_grant_tables

[mysql]

# mysql客户端默认字符集

default-character-set=utf8mb4

[client]

# mysql客户端连接服务端时默认使用的端口

port=3306

# 客户端与服务器之间通信使用的字符编码

default-character-set=utf8mb4

拷贝bin目录地址E:\mysql\mysql-5.7.44-winx64\bin,添加到系统环境变量中

以管理员身份打开CMD或者Windows PowerShell,切换到安装目录的bin目录下执行(以下所有命令都用管理员身份一条条执行)

# 切换到E盘

E:

# 切换到bin目录

cd E:\mysql\mysql-5.7.44-winx64\bin

# 初始化

mysqld --defaults-file=E:\mysql\mysql-5.7.44-winx64\my.ini --initialize --console

# 初始化后复制生成的root密码

# A temporary password is generated for root@localhost: 1IQXBjJMMD#j

# 使用以下命令为mysql-5.7.44创建服务

sc create MySQL5744 binPath= "E:\mysql\mysql-5.7.44-winx64\bin\mysqld --defaults-file=E:\mysql\mysql-5.7.44-winx64\my.ini MySQL5744" start= auto

# 启动服务

net start MYSQL5744

# 指定端口登录,然后输入拷贝的密码 1IQXBjJMMD#j

mysql -u root -p -P3306

# 查看端口号是否为设置的

show global variables like 'port';

# 修改新密码,两条命令试一下哪个能用用哪个

UPDATE mysql.user SET authentication_string=PASSWORD('123456')WHERE user='root';

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

# 刷新

flush privileges;

# 退出mysql登录

exit

# 登录验证新密码

mysql -u root -p -P3306

# 退出

exit

# 关闭服务

net stop MYSQL5744

配置8.4.2版本

进入E:\mysql\mysql-8.4.2-winx64目录,新建data空文件夹和my.ini配置文件

编辑my.ini文件,设置mysql安装目录和mysql数据库数据的存放目录

[mysqld]

# 端口

port = 3307

# mysql安装目录

basedir=E:\\mysql\\mysql-8.4.2-winx64

# mysql数据库数据的存放目录

datadir=E:\\mysql\\mysql-8.4.2-winx64\\data

# 允许最大连接数

max_connections=200

# 允许连接失败的次数。

max_connect_errors=10

# 服务端使用的字符集

character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 传统的基于密码的认证,会报错(从 MySQL 8.0 开始,默认的认证插件是 caching_sha2_password,而不是 mysql_native_password。如果您想使用 mysql_native_password 作为认证插件,您需要在用户创建时显式指定,而不是在服务器启动时通过配置文件设置。)

# default_authentication_plugin=mysql_native_password

# 启用后可以绕过权限验证,一般用于重置密码时临时开启

# skip_grant_tables

[mysql]

# mysql客户端默认字符集

default-character-set=utf8mb4

[client]

# mysql客户端连接服务端时默认使用的端口

port=3307

# 客户端与服务器之间通信使用的字符编码

default-character-set=utf8mb4

拷贝bin目录地址E:\mysql\mysql-8.4.2-winx64\bin,添加到系统环境变量中

以管理员身份打开CMD或者Windows PowerShell,切换到安装目录的bin目录下执行(以下所有命令都用管理员身份一条条执行)

# 切换到E盘

E:

# 切换到bin目录

cd E:\mysql\mysql-8.4.2-winx64\bin

# 初始化

mysqld --defaults-file=E:\mysql\mysql-8.4.2-winx64\my.ini --initialize --console

# 初始化后复制生成的root密码

# A temporary password is generated for root@localhost: 8R=aMdUtSj#u

# 使用以下命令为mysql-8.4.2-winx64创建服务

sc create MySQL842 binPath= "E:\mysql\mysql-8.4.2-winx64\bin\mysqld --defaults-file=E:\mysql\mysql-8.4.2-winx64\my.ini MySQL842" start= auto

# 启动服务

net start MYSQL842

# 使用传统的基于密码的认证

CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';

# 指定端口登录,然后输入拷贝的密码 8R=aMdUtSj#u

mysql -u root -p -P3307

# 查看端口号是否为设置的

show global variables like 'port';

# 修改新密码,两条命令试一下哪个能用用哪个

UPDATE mysql.user SET authentication_string=PASSWORD('123456')WHERE user='root';

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

# 刷新

flush privileges;

# 退出mysql登录

exit

# 登录验证新密码

mysql -u root -p -P3307

# 退出

exit

# 关闭服务

net stop MYSQL842

4.多版本

服务启动关闭,以管理员身份打开CMD或者Windows PowerShell

# 端口设置不冲突就可以同时启动或关闭,互不影响。

net start MYSQL842

net start MYSQL5744

net stop MYSQL842

net stop MYSQL5744

注意:

不同版本存在差异,配置文件和命令可能有区别,请自行测试。

服务命名随意,建议按照我的思路取去掉小数点的数字即可。

若安装的版本可能很多,那么端口可以设置为和服务名一致,也可以取4位不足补0,即可避免端口重复

参考文献

https://www.jb51.net/article/159413.htm

https://blog.51cto.com/u_16175436/11628427

https://blog.csdn.net/MissRen920/article/details/120061906

https://blog.csdn.net/s_156/article/details/135715769