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不同数据库版本的差别还是蛮大的!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容