引言:这边博客说的是在已经安装过一个mysql的情况下,如何再安装第二个mysql;如果是初次安装mysql的话,按这里的操作来安装也是没有问题的(也可以看win10安装解压缩版mysql5.7.25(图解),我的整体步骤是参照这个来的)。要多个共存的话,只能有一个配环境变量,因为都是mysql命令;配环境变量的是平时常用的版本,不配环境变量的敲命令就要用绝对路径。另外,文中把我在安装mysql过程中遇到问题,以及如何解决问题的过程记录了下来,与各位共享,一方面希望能达到少走弯路的目的,另一方面也希望能交流解决问题的思路。

 

我的笔记本之前装了一个5.6.21版本的mysql(用的3306端口),里面建了很多数据库,暂时放着。

由于项目中的数据库字段用到了json类型的数据格式,mysql版本相对较新(5.7.25),我需要在电脑上再装一个mysql。

 

装之前我在网上大概看了下别人的博客,发现只是在配置文件改改端口,然后按照正常流程执行下命令就ok了。

但是我操作遇到了很多问题(可能是因为我的mysql水平还处在比较小白的阶段),未必是件坏事,这些在大部分博客中都没提到,这里记录下。

我电脑上还装了一个redmine,redmine软件本身也装了一个mysql数据库(占了3307端口),我选用3309端口(邻近的随便选,只要没被占用就行)

1. 下载

https://downloads.mysql.com/archives/community/

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_一个电脑配置了两个MySQL会怎么样

 

2. 解压到自定义的文件夹

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_环境变量_02

3. 环境变量

之前我装的mysql(5.6.21)已经配置过一次环境变量了,

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_环境变量_03

装第二个就不配了(到时执行命令用绝对路径)

如果是装第一个mysql,还是配下环境变量,不然cmd里用mysql命令都得用绝对路径

4. 添加my.ini配置文件

# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3309 
# 设置mysql的安装目录
basedir="D:/worksoft/MySQL57/mysql-5.7.25-winx64"
# 设置mysql数据库的数据的存放目录
datadir="D:/worksoft/MySQL57/mysql-5.7.25-winx64/data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置sql语法模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

注:mysql数据库的数据的存放目录data,如果解压后没有data目录,先不用管

5. 管理员模式打开cmd窗口,进到mysql的bin目录下

(因为这次没有设置环境变量,不能在任意目录下调用到mysql命令,其他目录下调用的是5.6.21版本的mysql命令)

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_一个电脑配置了两个MySQL会怎么样_04

windows下cmd命令的查找顺序为:先在当前目录下找,如果找不到,再到PATH环境变量中查找。当前是在5.7.25的bin目录下,调用的就是5.7.25版本的mysql命令

 

但是后面在启动mysql服务的时候发现,一直无法启动。

直接到window中的服务中找到MySQL57,点开”属性“,发现调用的还是5.6.21的mysql

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_环境变量_05

解决方法:

先移除之前安装的MySQL57服务(mysqld -remove MySQL57),然后在执行mysql的install命令时,命令改用绝对路径

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_MySQL_06

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_一个电脑配置了两个MySQL会怎么样_07

6. 初始化MySQL数据库

有两种方式,我选用的是”初始化为空密码“

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_一个电脑配置了两个MySQL会怎么样_08

7. 启动MySQL服务(服务名忽略大小写)

// 启动MySQL服务
net start mysql57
// 关闭MySQL服务
net stop mysql57

启动MySQL服务,发现还是不行

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_一个电脑配置了两个MySQL会怎么样_09

看到这里,真的不知道该怎么办了。网上找了一圈,找到了一篇博客,虽然不是直接解决我的问题,但提供了解决问题的思路。

windows下应用程序(包括执行cmd命令)出错,可以上”事件查看器“找下错误原因

循着这个思路,我打开了事件查看器(里面的事件可能会比较多,建议在重现问题的时候先把应用程序的事件全都清掉)

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_环境变量_10

竟然提示”你是否有另外一个mysql server用的也是3306端口“。也就是说,我现在启动5.7.25的mysql服务用的也是3306端口。可是我一开始更改了my.ini配置文件里的端口号了,为什么会有这样的问题?

既然是启动服务出问题了,说明还是得回到”服务“里去看看

我这次把mysql5.6.21、redmineMysql和mysql5.7.25三个安装的服务中的属性做了下对比:

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_环境变量_11

很容易看出,我新装的mysql5.7.25没有指定my.ini(我之前的mysql 5.6.21是msi文件,直接一路点”下一步“装上的,对于软件背后做的事情并没有去了解)

如果没有指定my.ini,启动mysql会用一个默认端口3306;一台电脑只装一个mysql不存在这个问题,装多个的时候问题就出来了

我先把前面的MySQL57服务给卸载了,然后再重新安装了一次MySQL57服务,这次能正常启动了

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_一个电脑配置了两个MySQL会怎么样_12

8. 设置root用户新密码

8.1 连接mysql数据库(输入密码的地方如果是空直接回车;如果是随机密码则输入随机密码) 

8.2 修改密码

set password=password('123456');

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_mysql_13

9. 测试连接

一个电脑配置了两个MySQL会怎么样 一个电脑可以装两个mysql吗_环境变量_14

 

参考链接:win10安装解压缩版mysql5.7.25(图解)