从MySQL5.6.19升级到5.6.33
升级前做好备份是必须的
1、旧版本和新版本在不同的目录
安装新版本MySQL
解压源码包
#tar–xvf mysql-5.6.33.tar.gz
#cd mysql-5.6.33
执行cmake命令,生成编译配置文件
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql02 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT=‘mysql upgrade version‘ \
-DWITH_READLINE=ON \
-DSYSCONFDIR=/data/mysqldata/3306 \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock
#make && make install
停掉老版本MySQL
修改参数
basedir = /usr/local/mysql02 #数据库安装目录指定到新版本的安装目录
datadir = /data/mysqldata/3306/data #原数据库数据目录保持原来的目录即可
#只需要修改这些,其它的一般不需修改,如果需要将日志之类的转移到新目录,则按需修改
启动新版本MySQL
修改脚本里面的环境变量
$mysql_db_startup.sh
执行表权限升级
$/usr/local/mysql02/bin/mysql_upgrade -usystem -p123456
检查所有数据库
$/usr/local/mysql02/bin/mysqlcheck --all-databases -usystem -p123456
停止新版本MySQL
修改相应的环境变量
重新启动MySQL
2、旧版本和新版本在相同的目录
安装新版本MySQL
解压源码包
#tar–xvf mysql-5.6.33.tar.gz
#cd mysql-5.6.33
停掉老版本MySQL
备份旧版本目录
#mv mysql mysql_bak
执行cmake命令,生成编译配置文件
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT=‘mysql upgrade version‘ \
-DWITH_READLINE=ON \
-DSYSCONFDIR=/data/mysqldata/3306 \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock
#make && make install
启动新版本MySQL
修改脚本里面的环境变量
$mysql_db_startup.sh
执行表权限升级
$/usr/local/mysql/bin/mysql_upgrade -usystem -p123456
检查所有数据库
$/usr/local/mysql/bin/mysqlcheck --all-databases -usystem -p123456
停止新版本MySQL
重新启动MySQL
一、概述
1、运行mysql_upgrade时需要禁用GTID,因为运行mysql_upgrade会修改mysql引擎的系统表,这不是一个事务表
2、升级到5.7官方推荐的两种方法:
a)in-place upgrade:原地升级法,利用已存在的datadir目录进行升级
b)logical upgrade:逻辑升级法,利用mysqldump导出导入进行升级
3、在实际的升级过程中很少会用到上面这两种方法,特别是第一种。通常都是通过部署一个新从库来完成升级的(主库老版本,从库目标版本),这样的话只需要在切换的时候停下机就行了
4、逻辑升级的话,先导出,接着导入,最后运行mysql_upgrade完成升级。小版本升级可以不运行mysql_upgrade,在实际的生产环境中,建议不管是小版本升级还是大版本升级都运行mysql_upgrade
二、升级环境说明
mysql-5.6.19
mysql-5.7.15
cmake下载安装
#tar -xvf cmake-3.6.2.tar.gz
#cd cmake-3.6.2
#./bootstrap
#make && make install
#cmake --version
boost下载安装
# tar -xvf boost_1_59_0.tar.gz -C /usr/local/
# pwd
/usr/local
# mv boost_1_59_0/ boost/
# cd boost/
# ./bootstrap.sh
# ./b2 install
安装新版本MySQL
解压源码包
#tar–xvf mysql-5.7.15.tar.gz
#cd mysql-5.7.15
执行cmake命令,生成编译配置文件
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql02 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT=‘mysql upgrade version‘ \
-DWITH_READLINE=ON \
-DSYSCONFDIR=/data/mysqldata/3306 \
-DWITH_BOOST=/usr/local/boost \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock
#make && make install
三、停应用和MySQL5.6.19实例并备份数据库
四、修改my.cnf配置文件并启动MySQL5.7.15
修改参数
basedir = /usr/local/mysql02 #数据库安装目录指定到新版本的安装目录
datadir = /data/mysqldata/3306/data #原数据库数据目录保持原来的目录即可
#只需要修改这些,其它的一般不需修改,如果需要将日志之类的转移到新目录,则按需修改
五、启动MySQL5.7.15
修改脚本里面的环境变量
$mysql_db_startup.sh
六、升级数据库(升级数据字典)
$ /usr/local/mysql02/bin/mysql_upgrade -usystem -p123456
$ /usr/local/mysql02/bin/mysqlcheck --all-databases -usystem -p123456
重启MySQL5.7.15实例
$mysql_db_shutdown.sh
$mysql_db_startup.sh
确认升级是否成功
$ mysqlplus.sh
(system@localhost) [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.00 sec)
MySQL升级
原文:https://www.cnblogs.com/allenhu320/p/11304902.html