1 MySQL多版本安装
在windows
系统上,MySQL数据库的安装方式有2种MSI Installer
和ZIP Archive
。本文主要讲解通过ZIP Archive
解压缩包的方式,安装配置MySQL 5.7.42
和MySQL 8.0.33
2个不同版本的MySQL数据库实例。
下文中的
MySQL5
和MySQL8分别为
MySQL 5.7.42和
MySQL 8.0.33的简称,同时也是对应版本的
MySQL服务名称,下文中统一用
MySQL5代指
MySQL 5.7.42,
MySQL8代指
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.42
和MySQL 8.0.33
windows版本,并下载压缩包文件至本地。
2、分别加压缩至D:\MySQL\mysql-5.7.42-winx64
和D:\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-tables
,MySQL
登录时跳过数据库权限验证,无需输入密码。但是在修改密码时会报错:
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.33
的bin
目录下。
2、执行初始化命令,输入mysqld --initialize回车,此时在MySQL8.0.33
根目录下会生成一个data文件夹。注意:这个命令不需要附加参数,即不需要指定my.ini配置文件。
mysqld --initialize
3、执行命令,安装MySQL8
mysqld install MySQL8
注意:
1、这个命令不需要附加参数,即不需要指定my.ini
配置文件。如果和安装5.7.42
时一样指定my.ini
,MySQL8
服务在安装完毕后,启动时会启动失败,原因未知。
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.X
和MySQL8.X
在安装时,除了配置文件my.ini
中参数存在和SQL执行命令存在差异,大的步骤基本一致。
4、MySQL
环境变量是不需要强制配置的。加到path
里面只是为了全局都可以用mysql.exe
,mysqladmin.exe
等命令,如果不加我们如果要通过cmd
来打开mysql的话就每次都先cd到bin目录下面,依然可以执行相关命令。安装多个版本MySQL
,配置了环境变量,切换还比较麻烦。