Mysql的升级方式分为两种:原地升级和逻辑升级。
这两种升级方式,本质没有什么区别的。只是在对数据文件的处理上有些区别而已。 原地升级是直接将数据文件进行拷贝,而逻辑升级对数据文件的处理方式是通过逻辑导出导入,需要用到mysqldump。 逻辑升级大家都理解,这种方式在数据量比较大的情况下花费时间比较长。所以今天我们来讲讲原地升级。
原地升级
一.将现有的mysql关闭。使用cmd窗口,进入到mysql目录下面,将mysql服务移除。
C:UsersAdministratormysql5.6in>mysqld --remove mysql56 Service successfully removed.
二.下载最新的mysql5.7压缩包。
最新的mysql5.7的压缩包解压开你会发现,没有data目录和my.ini文件。
data目录中是存的数据库文件,不建议将之前版本的data目录复制进来,经测试 这样做后期数据库服务无法启动
后面会提到当 mysql服务无法启动 服务没有报告任何错误 解决方法
三.手动创建配置文件,文件名为:my.ini,添加内容如下:
可复制文本如下:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:\toolsmysql-5.7.25-winx64 # 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错 datadir=D:\toolsmysql-5.7.25-winx64data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
四.将要升级的数据库的服务添加到win的服务队列中 并启动服务
1.将mysql5.7的服务添加到win的服务队列中
D: oolsmysql-5.7.25-winx64in>mysqld --install mysqld Service successfully removed.
install 后面写的服务名看 bin目录下的mysql的应用程序是什么 我的是mysqld
2.启动mysql服务
D: oolsmysql-5.7.25-winx64in>net start mysqld mysqld 服务正在启动 .. mysqld 服务已经启动成功。
五.升级mysql:mysql_upgrade -uroot -p
D: oolsmysql-5.7.25-winx64in>mysql_upgrade -uroot -p
六.升级成功后,再次重启mysql5.7服务
D: oolsmysql-5.7.25-winx64>net stop mysqld mysqld 服务正在停止. mysqld 服务已成功停止。
D: oolsmysql-5.7.25-winx64in>net start mysqld mysqld 服务正在启动 .. mysqld 服务已经启动成功。