一、编译源码包
1.先从mysql官网下载源码包,然后我这边是自己在测试机编译成安装包上传到相应的服务器上再去升级的。
1)下载源码包
2)安装编译代码所需要的包
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake
3)从5.7.5开始Boost库是必须的,下载相应的包
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
4)解压相应的包
tar -zxvf boost_1_59_0.tar.gz
tar -zxvf mysql-5.7.21.tar.gz
mv boost_1_59_0 /usr/local/boost_1_59_0
5)用cmake编译安装
cd mysql-5.7.21
cmake -DCMAKE_INSTALL_PREFIX=/mysql \
-DMYSQL_DATADIR=/data/mysqldata \
-DSYSCONFDIR=/etc \
-DMYSQL_UNIX_ADDR=/data/binlog/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled \
6)执行编译和安装
make && make install
如果出错后重新运行配置,需要删除CMakeCache.txt文件
make clean
rm -f CMakeCache.txt
7)至此,编译完成,现在我们可以把/mysql下的文件打包成一个安装包,然后上传到要升级的服务器
tar -czvf /root/mysql-5.7.21.tar.gz /mysql
二、升级MySQL数据库(5.6到5.7),在升级前切记备份数据库
1)关闭数据库
mysql -uroot -p --execute="SET GLOBAL innodb_fast_shutdown=0"
mysqladmin -uroot -p shutdown
官网对innodb_fast_shutdown解释
2)对软件,数据库进行备份
mv /mysql /mysql5.6
cp -R /mysql/mysqldata /backup/mysqldata
3)解压上传过来的安装包
tar -zxvf mysql-5.7.21.tar.gz
chown -R mysql:mysql /mysql
4)开启5.7服务
mysqld_safe --user=mysql --datadir=/data/mysqldata
5)升级mysql_upgrade
mysql_upgrade -u root -p
mysql -u root mysql < fill_help_tables.sql (这张表需要手动更新)
6)重启数据库
mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/data/mysqldata
7)替换启动脚本
cp /mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --del mysqld
chkconfig --add mysqld
chkconfig mysqld on
8)使用启动脚本重启一次
mysqladmin -uroot -p shutdown
/etc/init.d/mysqld start