升级方法比较简单 ,亲测有效
原数据库版本为mysql5.6.36 需升级到5.7.22版本
mysql5.6.36 原安装目录
basedir = /usr/local/mysql
datadir = /var/lib/mysql
1) 下载mysql-5.7.22源码安装包
下载链接:https://downloads.mysql.com/archives/community/
2) 解压编译安装
useradd -M -s /sbin/nologin mysql / / 创建mysql用户
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake / / 安装依赖
tar -zxvf mysql-5.7.22.tar.gz -C /usr/src ;cd /usr/src/mysql-5.7.22 / / 解压
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.22 / / 编译项
-DMYSQL_DATADIR=/var/lib/mysql
-DSYSCONFDIR=/etc
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock
-DENABLED_LOCAL_INFILE=1
-DWITH_EXTRA_CHARSETS=all
-DMYSQL_USER=mysql
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost
make && make install
3) 停止5.6.36数据库并替换新编译的库
service mysqld stop
cd /usr/local/ && mv /usr/local/mysql/ /usr/local/mysql.bak
ln -s mysql-5.7.22 mysql
chown -R mysql.mysql mysql
4) 将5.6.36的启动命令替换成5.7.22的
cp support-files/mysql.server /etc/init.d/mysqld
cp bin/mysql /usr/local/bin
5)
vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /var/lib/mysql / /指向存放数据的目录
port = 3306
socket = /tmp/mysqld.sock
ps: 一定要确保my.cnf中的数据位置和你实际的数据位置是一致的,不管是默认的也好,还是你datadir指定的也好
6) 启动mysql并执行表权限升级
service mysqld start
mysql_upgrade -uroot -p // 执行表权限升级
/usr/local/mysql/bin/mysqlcheck --all-databases
ps: -s 表示只更新系统表,如果不加-s,则会把所有库的表以5.7的方式重建,数据库二进制文件是兼容的,无需升级
7)查看
mysql -V
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper