当前Windows10下已经安装了MySQL5.5.5版本,配置了开机自启动服务,端口设置为默认3306,也配置了环境变量%MYSQL5_HOME%\bin
。现希望通过修改不同的环境变量来使用不同的MySQL版本(MySQL5.7及MySQL8.0)
下载MySQL5.7版本
下载MySQL8.0版本
查看MySQL服务
以后切换不同MySQL版本只需要修改%MYSQL?_HOME%的值即可
创建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的配置,请根据你具体配置路径进行设置
为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服务
初始化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
也可以在服务列表中鼠标手动启动服务
此时,可以查看到服务已经启动
修改root用户密码
mysql>update mysql.user set authentication_string=password('密码') where user='root' and Host='localhost';
刷新缓存使其生效
mysql>flush privileges;
其实修改Path中的%MySQLx_HOME%只会影响使用
cmd>mysql -uroot -p
登陆的数据库版本
前提:服务列表中MySQL5.7、MySQL8.0服务已启动
端口设置在my.ini文件中配置
与安装配置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不同数据库版本的差别还是蛮大的!