同时安装多个不同版本的mysql_windows同时装多个版本的mysql

在实际开发中,一些低版本数据库,不支持一些特殊的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上执行上面语句会报错

e44d7ee0a24fe6692cd9e4ca590a83a8.png

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

7d20952242c289b4eccaafa2c432178a.png

正文正式开始:

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

3becc096ee6aa43ffb78e32bbf4bc2a7.png

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

4718d7acd61ec7ffb40a66d57a84943d.png

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

a3f74f2314fcf4bb638cd829c837e361.png

修改内容如图:

31f7f3d82729cd10500cce3cfcb79784.png

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

[mysqld]

port = 3308

basedir=D:\mysql-8.0.21-winx64

datadir=D:\mysql-8.0.21-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 以管理员身份去运行命令行窗口

0ea2dd262b616dc861cbfb5b46e47d16.png

4.2 进入mysql5.7的bin目录下

41a196e5a67ca5bbcfd93694289f8b09.png

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.

(2020.11.13安装遇到问题:由于找不到VCRUNTIME140.dll,无法继续执行代码  出现上述请先下载文件:微软常用运行库合集_2019.07.20_X64  下载链接:https://pan.baidu.com/s/1zyYLKv4pQf5o_NjYzUSyfA      提取码:k8dq)

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

96aec59ea18444057a6ad554e4222ddd.png

五 初始化数据库

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

在bin目录下执行如下命令

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

(2020.11.13返回以下错误

2020-03-08T12:13:19.585857Z 0 [System] [MY-010116] [Server] C:\wamp64\bin\mysql\mysql8.0.18\bin\mysqld.exe (mysqld 8.0.18) starting as process 3132

2020-03-08T12:13:19.813867Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\wamp64\bin\mysql\mysql8.0.18\data\mysqld_tmp_file_case_insensitive_test.lower-test

2020-03-08T12:13:19.814672Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\wamp64\bin\mysql\mysql8.0.18\data\mysqld_tmp_file_case_insensitive_test.lower-test

2020-03-08T12:13:19.815318Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\wamp64\bin\mysql\mysql8.0.18\data\' (OS errno: 2 - No such file or directory)

2020-03-08T12:13:19.988677Z 0 [ERROR] [MY-010119] [Server] Aborting

2020-03-08T12:13:19.997084Z 0 [System] [MY-010910] [Server] C:\wamp64\bin\mysql\mysql8.0.18\bin\mysqld.exe: Shutdown complete (mysqld 8.0.18) MySQL Community Server - GPL.

通过错误信息,可以知道,因为文件无法创建,导致MySQL启动失败。再检查下MySQL的data目录,发现这个目录不存在。 然后回想下安装过程,安装的时候,因为没有提前安装好运行库,所以安装过程中,提示了几次缺少xxx.dll。我想 应该是这个原因,导致MySQL初始化失败了。 那就手动初始化下吧~还是打开控制台,在控制台打开mysql的bin目录,然后输入以下命令 mysqld --initialize-insecure --user=root执行完之后,再尝试启动MySQL的服务,正常运行~)

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

8f04327f9dedbf8e1451028d5069c313.png

六 打开注册表(Win+R 输入 regedit ),找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql2,修改ImagePath参数,更正mysql2服务相关路径。

840debe9c84a11636952f0c4d0fb3449.png

修改ImagePath参数:

80e1b22ffd6c228e1310af775f51680d.png

七 启动数据库,修改密码

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

C:\mysql-5.7.22-winx64\bin>net start mysql2

mysql2 服务正在启动 .

mysql2 服务已经启动成功。

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

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

68026e50fe3c7843d17033709bf65e6c.png

使用临时密码进行登录(注意: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 root@localhost=password('001nX123456');

(如果报错:解决办法:ALTER USER'root'@'localhost' IDENTIFIED BY '123456';)

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)

结束。

原文链接:https://blog.csdn.net/wudinaniya/article/details/82455431

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值