基于LINUX的MySql二进制本地升级实施文档
转自:http://blog.itpub.net/23732248/viewspace-2887312/
升级数据库
MySql 安装分为两种,分为二进制安装和 RPM 包安装, RPM 包安装方式存在很大的局限性,即同一台物理主机或虚拟主机上不支持同时安装两套及以上不同版本的 MysQL 软件。如果一定要使用新 RPM 包介质升级,则必须先卸载老版本,再安装新版本。对于大多数原地升级的场景,推荐使用官方通用的二进制发行版安装包,或者用户定制源码编译的二进制包。
安装包下载: https://dev.mysql.com/downloads/mysql/ 点 Looking for the latest GA version 选择对应的版本下载。下图为作者下载的包。
当前版本为 5.7.27
需要升级的版本 5.7.37
安装目录: /usr/local/mysql
数据文件存放目录: /usr/local/mysql/data
升级后安装目录: /mysql/app/mysql-5.7.37
下载 MySQL 5.7.37 系列最新版本软件安装包,上传到目标位置,并配置环境变量,命令如下。
shell > mkdir -p /mysql/app/mysql-5.7.37 shell > tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz --strip-components=1 -C /mysql/app/mysql-5.7.3 shell > echo 'export PATH=/mysql/app/mysql-5.7.37/bin:$PATH' >> $HOME/.bash_profile |
如果当前 MySOL 使用了 InnoDB 的 XA 分布式事务,那么在升级之前需要运行 XA
RECOVER 来检查未提交的 XA 事务。如果返回的结果中确实存在这类 XA 分布式事务,
则需要通过 XA commit 语句提交这类事务:
mysql > XA RECOVER; mysql > XA COMMIT xid; |
或者通过 XA rollback 语句回滚这类 XA 分布式事务
mysql > XA ROLLBACK xid; |
先将源库的 innodb_fast_shutdown 全局系统变量值设置为 0 ,命令如下:
mysql> set global innodb_fast_shutdown = 0; |
然后对 MySql 源库实例执行慢关闭,命令如下
[root@localhost ~]# mysqladmin -u root -p -S /var/lib/mysql/mysql.sock shutdown 注:/var/lib/mysql/mysql.sock 此文件可通过cat /etc/my.cnf 查看位置 |
如果您将 MySql 服务器作为服务运行,可用 service 停止服务:
[root@localhost ~]# service mysqld stop |
shell> mkdir -p /usr/local/mysql/databak shell> mv /usr/local/mysql/data/* /usr/local/mysql/databak |
修改mysql 安装参数 [root@localhost ~]# vi /etc/my.cnf #basedir=/usr/local/mysql basedir=/mysql/app/mysql-5.7.37 将原先的安装目录注释,附上目标端目录 进入/etc/init.d/ ,将原先服务备份,并将目标实例复制过来。 [root@localhost bin]# cd /etc/init.d/ [root@localhost init.d]# mv mysqld mysqld_bak [root@localhost init.d]# cp /mysql/app/mysql-5.7.37/support-files/mysql.server /etc/init.d/mysqld 修改mysqld 程序,加入安装目录,和数据目录 [root@localhost init.d]# vi /etc/init.d/mysqld ………………… basedir=/mysql/app/mysql-5.7.37 datadir=/usr/local/mysql/data ………………… 赋予权限,并添加开机启动 [root@localhost init.d]# chmod +x /etc/init.d/mysqld [root@localhost init.d]# chkconfig --add mysqld [root@localhost init.d]# chkconfig --list mysqld |
[root@localhost init.d]# service mysqld start |
mysql_upgrade 会检查所有数据库中的所有表,查找与当前 MySQL 版本不兼容的地
方,还会升级 MySQL 系统数据库,以便利用新版本的权限或功能。这是整个升级流程中最
为重要的一步, MySQL 会对系统对象进行更新,从而让数据库能够充分利用新版本的功能
和特性。下面执行 mysql_upgrade 程序,检查并解决旧数据和新软件之间可能存在的任何不兼容问题:
[root@localhost init.d]# mysql_upgrade -u root -p -S /var/lib/mysql/mysql.sock Enter password: Checking if update is needed. Checking server version. Error: Server version (5.7.37) does not match with the version of the server (5.7.27) with which this program was built/distributed. You can use --skip-version-check to skip this check.
[root@localhost init.d]# mysql_upgrade -u root -p -S /var/lib/mysql/mysql.sock --skip-version-check Enter password:
Upgrade process completed successfully. Checking if update is needed. |
[root@localhost ~]# vi .bash_profile #export PATH=$PATH:/usr/local/mysql/bin [root@localhost ~]# source .bash_profile 将原先的环境变量注释掉 [root@localhost ~]# mysql -V mysql Ver 14.14 Distrib 5.7.37, for linux-glibc2.12 (x86_64) using EditLine wrapper |
企业提供镜像:
阿里云开源镜像:http://mirrors.aliyun.com/
搜狐开源镜像:http://mirrors.sohu.com/
网易开源镜像:http://mirrors.163.com/
LUPA:http://mirror.lupaworld.com/
首都在线科技股份有限公司:http://mirrors.yun-idc.com/
常州贝特康姆软件技术有限公司(原cn99):http://centos.bitcomm.cn/
大学校园镜像(推荐以下几所大学):
浙江大学:http://mirrors.zju.edu.cn/
北京理工大学:
http://mirror.bit.edu.cn (IPv4 only)
http://mirror.bit6.edu.cn (IPv6 only)
北京交通大学:
http://mirror.bjtu.edu.cn (IPv4 only)
http://mirror6.bjtu.edu.cn (IPv6 only)
http://debian.bjtu.edu.cn (IPv4+IPv6)
上海交通大学:
http://ftp.sjtu.edu.cn/ (IPv4 only)
http://ftp6.sjtu.edu.cn (IPv6 only)
清华大学:
http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6)
http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only)
http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only)
中国科学技术大学:
http://mirrors.ustc.edu.cn/ (IPv4+IPv6)
http://mirrors4.ustc.edu.cn/
http://mirrors6.ustc.edu.cn/
东北大学:
http://mirror.neu.edu.cn/ (IPv4 only)
http://mirror.neu6.edu.cn/ (IPv6 only)
华中科技大学:
http://mirrors.hust.edu.cn/
http://mirrors.hustunique.com/
大连东软信息学院:
http://mirrors.neusoft.edu.cn/
npm镜像
cnpmjs:http://cnpmjs.org/
华为云
https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/