MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)
由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能。而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能。 因此需要升级MySQL版本,升级的目标版本是MySQL 5.7.30(虽然最新版本已经到8.x,但是5.7基本够用了)。 发现在升级安装过程中,会有一些坑,所以使用本文记录一下。
卸载老版本
首先需要卸载老的版本,卸载其实也挺简单,只需要移除MySQL服务即可,首先打开CMD,然后cd到MySQL的bin目录,然后输入下面的命令移除MySQL服务:
mysqld --remove mysql
//需要注意的是: “msyql” 是服务名称,安装的时候如果没有指定服务名称,
//默认名称是MySQL(windows下不区分大小写);
// 如果安装的时候指定了名称,上面的名称需要修改为该指定的名称。
remove msyql
需要注意的一点是,我们删除了MySQL服务之后,有可能在windows的服务的列表里面还有,保留在哪儿也没啥影响,但是如果你又洁癖,一定要删除,就需要去删除注册表中对应键,参考下图。当然对于我们升级来说,后续还需要安装windows服务,可以直接覆盖。
注册表的图
然后删除老的MySQL相关文件夹,以及删除相关的环境变量的配置。
需要注意的是,如果数据文件和MySQL程序在一个文件夹下,需要保留数据
安装5.7.30版本
接下来就是安装5.7.30版本,第一步是下载。
下载MySQL
下载地址是:
https://
dev.mysql.com/downloads
/mysql/
点击上面链接,进入到下载页面,由于最新的版本是8.x,所以默认是8.x的版本。可以通过点击“Looking for the latest GA
version ”选择版本,然后下载免安装版本:
下载
解压MySQL
下载完成后,解压到你想要安装的目录,比如我的目录是:
D:\Program Files (x86)\mysql-5.7.30-winx64
目录
配置环境变量
在系统变量path后面追加D:\Program Files (x86)\mysql-5.7.30-winx64\bin,如图所示。
环境变量
创建配置文件my.ini
5.7.30版本的安装包默认是不带配置文件my.ini的。所以需要创建自己创建一个my.ini的文件。手动创建my.ini文件,然后输入如下内容:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql安装目录
basedir=D:\Program Files (x86)\mysql-5.7.30-winx64
# 设置mysql数据库的数据存放目录
datadir=D:\Program Files (x86)\mysql-5.7.30-winx64\data
# 运行最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 参加新表时将使用的默认存储引擎
default-storage-engine=INNODB
此处会有一些坑,需要避免。
my.ini注意事项一
my.ini必须保存为ANSI格式(配置文件默认就是是ANSI编码格式,可能会不小心保存为其他格式,比如UTF-8),否正会出现后续的服务不能启动的情况。 如果你不确定my.ini是什么格式,可以另存为:
格式ANSI
my.ini注意事项二
如果是从低版本升级到5.7的版本,可能为了保留之前的配置,就直接把之前的配置文件拷贝过来。这个时候就要注意了,因为以前很多低版本的参数,已经不适合高版本的。如果不修改过来,就会导致后续的服务启动失败。
比如笔者遇到的一个导致错误的参数是:
#table_cache=256 // 低版本的
table_open_cache=256 // 高版本的
如果一定要保留老版本的配置,又对于新版本的参数修改不是很熟悉,那么可以再配置文件中把日志功能假设,这样再报错的时候,可以通过查看日志了解详情。 如下配置日志路径即可:
log_error=D:/mysql-5.7/error.log
然后启动失败后,可以通过日志查看报错,比如:
错误日志
更多可能的错误参数:
unknown variable 'key-buffer=256M' //去掉改项即可。