windows同时装多个版本的mysql

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

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

  1.  
    CREATE TABLE `storage` (
  2.  
    `storageid` INT(11) NOT NULL AUTO_INCREMENT,
  3.  
     
  4.  
    `createTime` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  5.  
     
  6.  
    `updateTime` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  7.  
     
  8.  
    PRIMARY KEY (`storageid`)
  9.  
    ) ENGINE=INNODB AUTO_INCREMENT=292 DEFAULT CHARSET=utf8 COMMENT='仓库'

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

5.1版本会报错

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

mysql5.7版本可正常执行上述语句

 

正文正式开始:

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

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

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

 

修改内容如图:

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

[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 以管理员身份去运行命令行窗口

4.2 进入mysql5.7的bin目录下

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

  1.  
    C:\mysql-5.7.22-winx64\bin>mysqld install mysql2 --default-file="C:\mysql-5.7.22-winx64\my.ini"
  2.  
     
  3.  
    成功安装后会提示:
  4.  
    Service successfully installed.
     
    (2020.11.13安装遇到问题:由于找不到VCRUNTIME140.dll,无法继续执行代码  出现上述请先下载文件:微软常用运行库合集_2019.07.20_X64  下载链接:https://pan.baidu.com/s/1zyYLKv4pQf5o_NjYzUSyfA      提取码:k8dq)

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

五 初始化数据库

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启动失败。再检查下MySQLdata目录,发现这个目录不存在。 然后回想下安装过程,安装的时候,因为没有提前安装好运行库,所以安装过程中,提示了几次缺少xxx.dll。我想 应该是这个原因,导致MySQL初始化失败了。 那就手动初始化下吧~还是打开控制台,在控制台打开mysqlbin目录,然后输入以下命令 mysqld --initialize-insecure --user=root 执行完之后,再尝试启动MySQL的服务,正常运行~

 

 

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

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

修改ImagePath参数:

七 启动数据库,修改密码

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

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

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

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

 

使用临时密码进行登录(注意: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>

 

修改密码

  1.  
    mysql> set password for root@localhost=password('001nX123456');
    (如果报错:解决办法:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  2.  
    Query OK, 0 rows affected, 1 warning (0.00 sec)

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

  1.  
    mysql> quit
  2.  
    Bye
  3.  
     
  4.  
     
  5.  
    C:\mysql-5.7.22-winx64\bin>mysql -P3307 -uroot -p
  6.  
    Enter password: *************
  7.  
    Welcome to the MySQL monitor. Commands end with ; or \g.
  8.  
    Your MySQL connection id is 3
  9.  
    Server version: 5.7.22 MySQL Community Server (GPL)


结束。

 

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

posted @ 2020-11-13 15:47  真理不真  阅读(488)  评论(0编辑  收藏  举报