Mysql的升级方式分为两种:原地升级和逻辑升级。这两种升级方式,本质没有什么区别的。
只是在对数据文件的处理上有些区别而已。原地升级是直接将数据文件进行拷贝,而逻辑升级对数据文件的处理方式是通过逻辑导出导入,需要用到mysqldump
。
逻辑升级大家都理解,这种方式在数据量比较大的情况下花费时间比较长。所以今天我们来讲讲原地升级。
原地升级
1.将现有的mysql关闭。使用cmd窗口,进入到mysql目录下面,将mysql服务移除。
X:\Ares\bin\mysql5.6\bin>mysqld --remove mysql5.6 Service successfully removed.
2.下载最新的mysql5.7压缩包。
下载地址:https://dev.mysql.com/downloads/mysql/
最新的mysql5.7的压缩包解压开你会发现,没有data目录和my.ini文件,跟之前的版本不一样。
3.将之前mysql5.6的data目录和my.ini文件拷贝至mysql5.7下。
这个地方要注意:my.ini中,版本5.6的配置,有一些在版本5.7下面已经不能用了。
将mysql.ini文件配置做以下修改。
[mysqld]
# 设置mysql的安装目录[根据本地情况进行修改]
basedir = X:/Ares/bin/mysql
# 设置mysql数据库的数据的存放目录[根据本地情况进行修改]
datadir = X:/Ares/bin/mysql/data
#设置3306端口
port = 3306
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
4.将mysql5.7的服务添加到win的服务队列中,并且启动mysql服务。
将mysql5.7的服务添加到win的服务队列中
X:\Ares\bin\mysql5.7\bin>mysqld --install mysql5.7 Service successfully removed.
启动mysql服务
X:\Ares\bin\mysql5.7\bin>net start mysql5.7 mysql5.7 服务正在启动 .. mysql5.7 服务已经启动成功。
5.升级mysql:mysql_upgrade -uroot -p
X:\Ares\bin\mysql5.7\bin>mysql_upgrade -uroot -p123
.......省略一万字..........
升级速度具体看data目录的大小情况而定。
6.升级成功后,再次重启mysql5.7服务
X:\Ares\bin\mysql5.7\bin>net stop mysql5.7 mysql 服务正在停止. mysql 服务已成功停止。
X:\Ares\bin\mysql5.7\bin>net start mysql5.7 mysql5.7 服务正在启动 .. mysql5.7 服务已经启动成功。