Windows下配置多个Mysql版本

0.前言

当前Windows10下已经安装了MySQL5.5.5版本,配置了开机自启动服务,端口设置为默认3306,也配置了环境变量%MYSQL5_HOME%/bin。现希望通过修改不同的环境变量来使用不同的MySQL版本(MySQL5.7及MySQL8.0)

1.准备工作

当前数据库服务及启动参数
  • 查看当前Mysql版本
当前数据库版本
  • 当前环境变量Path
Path下的MySQL环境变量

2.安装及配置MySQL5.7

2.1安装软件

  • 解压软件安装包,先安装红色方框中的两个软件(MySQL运行环境需要,不过如果本地已经安装过MySQL5.5版本,可忽略),然后根据Windows操作系统位数(本机为64位)安装对应msi文件。
首次安装软件
  • 自定义安装路径到E:/MySQL/MySQL Server 5.7

2.2配置环境变量

  • 在"我的电脑"右键->"属性"->"高级系统设置"->"系统属性"的"高级"->"环境变量"->"系统变量"中添加:
设置MySQL5.7环境变量
  • 同时配置环境变量Path
修改Path下MySQL环境变量的值

以后切换不同MySQL版本只需要修改%MYSQL?_HOME%的值即可

2.3创建my.ini文件

  • 创建data文件夹用于放置MySQL数据库数据
对应目录创建data文件夹及ini文件
  • 创建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数据库,默认密码为空,直接回车即可,由于本人已修改过密码,下图仅展示数据库版本
登陆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修改环境变量切换

  • 修改环境变量
修改Path下的MySQL环境变量
  • 重启一个终端(cmd)窗口
登陆MySQL5.5

其实修改Path中的%MySQLx_HOME%只会影响使用cmd>mysql -uroot -p登陆的数据库版本

2.7.2指定端口切换

前提:服务列表中MySQL5.7、MySQL8.0服务已启动

  • 切换到MySQL5.7版本
切换到MySQL5.7版本
  • 切换到MySQL58.0版本
切换到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不同数据库版本的差别还是蛮大的!

版权声明:
作者:ht
链接:https://www.techfm.club/p/60505.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>