欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

windows上同时安装两个版本的mysql数据库

程序员文章站 2024-03-21 17:15:28
...

在实际开发中,一些低版本数据库,不支持一些特殊的sql语句,因此高版本数据库数据导入低版本的时候就会出问题,因此,在一些特殊情况下,低版本数据库不能动,高版本mysql数据又无法导入低版本mysql,我们不得不在同一台机器上安装两个版本mysql.

低版本mysql不支持的sql语句举例,比如下面的这个:

CREATE TABLE `storage` (
  `storageid` INT(11) NOT NULL AUTO_INCREMENT,
  
  `createTime` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  
  `updateTime` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  
  PRIMARY KEY (`storageid`)
) ENGINE=INNODB AUTO_INCREMENT=292 DEFAULT CHARSET=utf8 COMMENT='仓库'

在5.1版本的mysql上执行上面语句会报错

windows上同时安装两个版本的mysql数据库

而在5.7版本的mysql就支持双时间戳timestamp.可以正常执行上述sql语句

windows上同时安装两个版本的mysql数据库

 

正文正式开始:

一 先停止之前安装的低版本mysql服务:

windows上同时安装两个版本的mysql数据库

二 将我其他电脑上安装好的mysql5.7拷贝过来(我在其他电脑上安装过mysql-5.7.22-winx64.zip版本)

windows上同时安装两个版本的mysql数据库

三 拷贝过来之后,进入该文件夹,删除掉data目录,然后打开my.ini,进行修改端口号,端口号改为3307,basedir和datadir也要重新配一下

windows上同时安装两个版本的mysql数据库

 

修改内容如图:

windows上同时安装两个版本的mysql数据库

配置文件内容想要的可以拿去:------>

[mysqld]
port = 3307
basedir=C:\mysql-5.7.22-winx64
datadir=C:\mysql-5.7.22-winx64\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8

 

四 开始执行安装和添加服务的步骤:

4.1 以管理员身份去运行命令行窗口

windows上同时安装两个版本的mysql数据库

4.2 进入mysql5.7的bin目录下

windows上同时安装两个版本的mysql数据库

4.3 安装mysql服务,指定该mysql服务名为mysql2,并根据my.ini文件进行安装,命令如下:

C:\mysql-5.7.22-winx64\bin>mysqld install mysql2 --default-file="C:\mysql-5.7.22-winx64\my.ini"

成功安装后会提示:
Service successfully installed.

去服务里面,可查看到此时多了一个mysql2服务

windows上同时安装两个版本的mysql数据库

五 初始化数据库

mysql服务安装成功后,就需要初始化数据库了,否则是无法启动服务的。

在bin目录下执行如下命令

C:\mysql-5.7.22-winx64\bin>mysqld --initialize

初始化成功后,命令行没有任何提示。但在mysql5.7文件夹中已自动生成了data目录

windows上同时安装两个版本的mysql数据库

六 打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql2,修改ImagePath参数,更正mysql2服务相关路径。

windows上同时安装两个版本的mysql数据库

修改ImagePath参数:

windows上同时安装两个版本的mysql数据库

七 启动数据库,修改密码

使用net start mysql2 命令启动mysql2服务

C:\mysql-5.7.22-winx64\bin>net start mysql2
mysql2 服务正在启动 .
mysql2 服务已经启动成功。

(若mysql2 启动失败,请检查自己是否已经停止了之前的mysql服务,见第一步)

mysql2服务启动后,去data/xxx.err文件中找到临时密码,进行登录

windows上同时安装两个版本的mysql数据库

 

使用临时密码进行登录(注意:P 端口,p 密码

C:\mysql-5.7.22-winx64\bin>mysql -P3307 -uroot -p
Enter password: ************    (此处输入的是临时密码)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 

修改密码

mysql> set password for aaa@qq.com=password('001nX123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)

使用 quit 退出,使用新密码登录。

mysql> quit
Bye


C:\mysql-5.7.22-winx64\bin>mysql -P3307 -uroot -p
Enter password: *************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22 MySQL Community Server (GPL)


结束。