在实际开发中,一些低版本数据库,不支持一些特殊的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上执行上面语句会报错
而在5.7版本的mysql就支持双时间戳timestamp.可以正常执行上述sql语句
一 先停止之前安装的低版本mysql服务:
二 将我其他电脑上安装好的mysql5.7拷贝过来(我在其他电脑上安装过mysql-5.7.22-winx64.zip版本)
三 拷贝过来之后,进入该文件夹,删除掉data目录,然后打开my.ini,进行修改端口号,端口号改为3307,basedir和datadir也要重新配一下
修改内容如图:
配置文件内容想要的可以拿去:------>
[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 以管理员身份去运行命令行窗口
4.2 进入mysql5.7的bin目录下
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服务
五 初始化数据库
mysql服务安装成功后,就需要初始化数据库了,否则是无法启动服务的。
在bin目录下执行如下命令
C:\mysql-5.7.22-winx64\bin>mysqld --initialize
初始化成功后,命令行没有任何提示。但在mysql5.7文件夹中已自动生成了data目录
六 打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql2,修改ImagePath参数,更正mysql2服务相关路径。
修改ImagePath参数:
七 启动数据库,修改密码
使用net start mysql2 命令启动mysql2服务
C:\mysql-5.7.22-winx64\bin>net start mysql2
mysql2 服务正在启动 .
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.22Copyright (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');
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)
结束。