MySQL从5.6版本到5.7版本的升级过程
二进制升级过程
1.介绍
此处因原有的版本就是5.6的,就不再赘述5.6的安装过程了
原有数据库5.6的目录情况
--basedir=/usr/local/mysql
#base目录是做的软链,指向mysql-5.6.28-linux-glibc2.5-x86_64
ln -s mysql-5.6.28-linux-glibc2.5-x86_64 mysql
--datadir=/data/mysql
--defaults-file=/etc/my.cnf
2.将5.6的数据库关闭
mysqladmin -uroot -p shutdown
3.将mysql重新指向5.7版本
cd /usr/local
unlink mysql
或是 mv mysql mysql56.bak
tar -zxvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
ln -s mysql-5.7.12-linux-glibc2.5-x86_64 mysql
或者下面这样也行
mv mysql-5.7.12-linux-glibc2.5-x86_64 mysql
4.将mysql用户权限授予该目录
chown -R mysql.mysql mysql
#此时,MySQL的应用程序版本已经升级完成
#都不需要做任何的改变,即可将当前系统的mysql版本升级完成
#注意:此时只是应用程序升级完成,系统表仍然还是5.6的版本
5.应用原先的数据目录及配置文件,启动数据库
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
能够启动成功,但是到错误日志里面可以看到,好多error和warning
6.进行upgrade升级操作
参数 -s 一定要加,表示只更新系统表,-s: upgrade-system-tables
#如果不加-s,则会把所有库的表以5.7的方式重建,线上千万别这样操作
#因为数据库二进制文件是兼容的,无需升级
./mysql/bin/mysql_upgrade -p -s
Enter password:
The --upgrade-system-tables option was used, databases won't be touched.
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Upgrading the sys schema.
Upgrade process completed successfully.
Checking if update is needed.
7.进入数据库,并做检查
mysql -uroot -p
进入数据库可以看到,多了sys库,用户多了mysql.sys
mysql.user表也更新了,没有了password列,test库保留,这些也就是mysql5.7和5.6的区别之处,细处5.7有新增参数,不详述
为了避免后续麻烦,将数据库重启一下,此时可以看到错误日志就没有报错信息了
查看当前版本
mysql -V
这样升级的话,就不会开启5.7中ssl的开关,因为5.6中默认是不开启的