之前研究python的时候玩了一下mysql,然后最近研究node的时候发现需要用到数据库,发现一直报错,网上的各种方法也试过了,最后怀疑是mysql版本的问题,于是就尝试在电脑上再装一个版本的mysql,原来的mysql使用的是mysql-8.0.22-winx64版本的,现在考虑再安装一个mysql-5.7.35-winx64版本的,mysql下载地址戳 这里
1、下载解压
下载完成之后解压就行(这个路径不要和之前那个版本的路径重复)
点击进入解压后的文件夹,需要新建 data 文件夹和 mysql.ini 文件
其中 mysql.ini 需要填入以下内容,当然你也可以从已有的版本去复制添加,data 就为空文件夹就行
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip_grant_tables
#设置3307端口 与之前的3306接口不重复
port = 3307
default_authentication_plugin=mysql_native_password
# 设置mysql的安装目录(你自己安装mysql的目录)
basedir=D:\\softLoad\\mysql_sql57\\mysql-5.7.35-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\\softLoad\\mysql_sql57\\mysql-5.7.35-winx64\\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
2、配置环境变量
将mysql5.7版本安装的bin路径添加到环境变量中去
3、关闭原来的mysql服务
关闭原来的mysql服务(原来的是mysql8.0)
此电脑=>右键=>管理=>服务和应用程序=>服务=>找到原来版本的mysql停掉
重点来了!重点来了!重点来了!
按照网上的做法
以管理员身份打开黑窗口(CMD),切换到mysql8安装目录的bin目录下执行(以下所有的命令都必须是以管理员身份打开的cmd)
先执行
mysqld --initialize --console
拿到root的初始密码:
再执行
mysqld --install MYSQL3307
没任何毛病,如丝般顺滑
但是当我使用 Navicat 去连接的时候连不上了,what???
去刚刚的服务路径下查看
此电脑=>右键=>管理=>服务和应用程序=>服务=>MYSQL57发现这个路径使用的居然是8.0版本的路径,所以肯定是有问题的了
4、正确安装
所以刚刚那一步正确的做法应该是去bin路径下执行下面的代码
mysqld --defaults-file=D:\softLoad\mysql_sql57\mysql-5.7.35-winx64\mysql.ini --initialize --console
执行完成之后会有一个root的初始密码
修改注册表中mysql57的路径
win+R 输入regedit 之后找到路径
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL57
修改ImagePath,把值改成:
"D:\softLoad\mysql_sql57\mysql-5.7.35-winx64\bin\mysqld" --defaults-file=D:\softLoad\mysql_sql57\mysql-5.7.35-winx64\mysql.ini MySQL57
然后再执行bin下面的启动命令
你以为结束了???想多了,又报错了
查看系统报错提示:# InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibaredata1
解决办法就是删掉我们刚刚建的data文件夹,网上说是高版本的数据库安装的时候生成的一些数据影响到低版本的安装
删掉之后重新net start MYSQL57
就成功了
当我以为一切都结束的时候,Navicat连接又报错了
继续填坑
登录mysql(命令行输入mysql -uroot -P3307
+ 刚生成的那个root的初始密码登录),
登录进去后,执行命令下面的命令
set global show_compatibility_56=on;
这个时候重新再连接就好了,修改密码啥的网上都有,这里就不重复了
(\ _ /)
( * . *)
/>❤️