Windows下配置多个Mysql版本
0.前言
当前Windows10下已经安装了MySQL5.5.5版本,配置了开机自启动服务,端口设置为默认3306,也配置了环境变量%MYSQL5_HOME%/bin
。现希望通过修改不同的环境变量来使用不同的MySQL版本(MySQL5.7及MySQL8.0)
1.准备工作
-
下载MySQL5.7版本
-
下载MySQL8.0版本
-
查看MySQL服务
- 查看当前Mysql版本
- 当前环境变量Path
2.安装及配置MySQL5.7
2.1安装软件
- 解压软件安装包,先安装红色方框中的两个软件(MySQL运行环境需要,不过如果本地已经安装过MySQL5.5版本,可忽略),然后根据Windows操作系统位数(本机为64位)安装对应msi文件。
- 自定义安装路径到E:/MySQL/MySQL Server 5.7
2.2配置环境变量
- 在"我的电脑"右键->"属性"->"高级系统设置"->"系统属性"的"高级"->"环境变量"->"系统变量"中添加:
- 同时配置环境变量Path
以后切换不同MySQL版本只需要修改%MYSQL?_HOME%的值即可
2.3创建my.ini文件
- 创建data文件夹用于放置MySQL数据库数据
-
创建my.ini文件用于配置MySQL启动配置,文件位置如上图,文件内容如下:
[mysqld] # 设置3307端口,为了与旧版本的区分不冲突 port=3307 # 设置mysql的安装目录 # 切记此处一定要用斜杠/,我这里是斜杠可以用 basedir=E:/MySQL/MySQL Server 5.7 # 设置mysql数据库的数据的存放目录 datadir=E:/MySQL/MySQL Server 5.7/data # 允许最大连接数 max_connections=300 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集 character-set-server=UTF8MB4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # MySQL8.0.4之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。 # 但因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,我暂时改回了“mysql_native_password”认证插件。 # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password # SQL MODE设置,去掉了only_full_group_by sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION [mysql] # 设置mysql客户端默认字符集 default-character-set=UTF8MB4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3307 default-character-set=UTF8MB4
其中,因为我并不打算停掉原来的MySQL5.5的服务,所以使用了不同的端口3307
同时basedir及datadir的配置,请根据你具体配置路径进行设置
2.4创建数据库服务
- 使用管理员身份打开终端(cmd)窗口,同时切换至MySQL5.7安装目录的bin文件夹下
-
为MySQL5.7创建服务,同时指定其启动时指定配置文件
E:/MySQL/MySQL Server 5.7/bin>mysqld --install "MySQL5.7" --defaults-file="E:/MySQL/MySQL Server 5.7/my.ini"
注意:使用的是双引号(""),如果是无引号和单引号('')会无法生效,具体可以尝试一下(不嫌麻烦的话)
- 删除服务命令:
sc delete xxx
命令窗口结果为:
Service successfully installed.
此时能够在服务列表中查看到MySQL5.7服务
- 删除服务命令:
2.5初始化数据库
-
初始化MySQL5.7数据库
E:/MySQL/MySQL Server 5.7/bin>mysqld --initialize-insecure --user=mysql
初始化数据库,并设置默认root为空
-
启动MySQL5.7服务
E:/MySQL/MySQL Server 5.7/bin>net start MySQL5.7
也可以在服务列表中鼠标手动启动服务
此时,可以查看到服务已经启动
2.6修改数据库密码
- 首次进入MySQL5.7数据库,默认密码为空,直接回车即可,由于本人已修改过密码,下图仅展示数据库版本
-
修改root用户密码
mysql>update mysql.user set authentication_string=password('密码') where user='root' and Host='localhost';
-
刷新缓存使其生效
mysql>flush privileges;
2.7切换MySQL5.5版本
2.7.1修改环境变量切换
- 修改环境变量
- 重启一个终端(cmd)窗口
其实修改Path中的%MySQLx_HOME%只会影响使用
cmd>mysql -uroot -p
登陆的数据库版本
2.7.2指定端口切换
前提:服务列表中MySQL5.7、MySQL8.0服务已启动
- 切换到MySQL5.7版本
- 切换到MySQL58.0版本
端口设置在my.ini文件中配置
3.安装及配置MySQL8.0
与安装配置MySQL5.7步骤大同小异,无非就是添加、修改环境变量,ini配置文件,创建mysql服务,初始化数据库,修改数据库密码几个步骤。其中不同点如下:
-
my.ini文件
[mysqld] # 设置3308端口 port=3308 # 设置mysql的安装目录 basedir=E:/MySQL/MySQL Server 8.0 # 设置mysql数据库的数据的存放目录,在安装mysql-5.7.30-winx64.zip版本的时候,此配置不可添加,否则mysql将无法启动。 datadir=E:/MySQL/MySQL Server 8.0/data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password # 关闭ssl #skip_ssl # 配置时区 default-time_zone='+8:00' [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3308 default-character-set=utf8
-
不需要初始化数据库操作
-
修改密码
mysql>ALTER user 'root'@'localhost' IDENTIFIED BY '密码';
也希望你能自己动手配置一下,权当练习,嘿嘿~
PS:MySQL不同数据库版本的差别还是蛮大的!
共有 0 条评论