iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL升级
  • 482
分享到

MySQL升级

2024-04-02 19:04:59 482人浏览 独家记忆
摘要

一、概述 linux Mysql 5.7二进制 小版本升级,升级前需要备份数据和mysql主配置文件my.cnf 对数据字典的升级数据字典有:mysql、infORMation_schema、perform

一、概述

linux Mysql 5.7二进制 小版本升级,升级前需要备份数据和mysql主配置文件my.cnf
对数据字典的升级数据字典有:mysql、infORMation_schema、performance_schema、sys schema。
MySQL升级的两种方式:
in-place upgrade:
适合小版本的升级。
即 关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行mysql_upgrade.
特点:不改变数据文件,升级速度快;但,不可以跨操作系统,不可以跨大版本(5.5—>5.7).

logical upgrade:
适合不同操作系统的MySQL升级,大版本之间的升级。
即:使用mysqldump 或 mydumper 导入导出数据,实现版本的升级。
特点:可以跨操作系统,跨大版本;但,升级速度慢,容易出现乱码等问题。

二、小版本升级
in-place upgrade方式

in-place upgrade包括关闭旧的MySQL服务器,用新的MySQL服务器替换旧的MySQL二进制文件或软件包,在现有数据目录上重新启动MySQL,以及运行mysql_upgrade。
2.1 XA事务InnoDB
如果您使用XA事务InnoDB,请XA RECOVER在升级之前运行以检查未提交的XA事务。如果返回结果,则通过发出XA COMMIT或 XA ROLLBACK声明来提交或回滚XA事务。

2.2 配置MySQL以通过设置innodb_fast_shutdown为 执行慢速关闭 0。
mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
在关闭过程中,InnoDB执行完全清除并在关闭之前更改缓冲区合并,这可确保在发布版本之间存在文件格式差异时完全准备好数据文件。

2.3 关闭旧的MySQL服务器
mysqladmin -u root -p shutdown

2.4 安装新的MySQL二进制包
下载,解压新的MySQL二进制分发包;
授权:chown -R mysql.mysql /usr/loacl/mysql_new
把MySQL的软连接指向新的mysql服务
unlink /usr/loacl/mysql
ln -s /usr/loacl/mysql_new /usr/loacl/mysql

2.5 使用现有数据目录启动新MySQL 5.7服务器
mysqld_safe --user=mysql --datadir=/path/to/existing-datadir

2.6 运行mysql_upgrade
mysqlcheck --no-defaults --check-upgrade --databases --auto-repair
/usr/loacl/mysql_new/bin/mysql_upgrade -u root -p
mysql_upgrade检查所有数据库中的所有表是否与当前版本的MySQL不兼容。mysql_upgrade还会升级mysql系统数据库,以便您可以利用新的权限或功能。

注意
mysql_upgrade不会升级帮助表的内容。
2.7 关闭并重新启动MySQL服务器以确保对系统表所做的任何更改都生效
mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/existing-datadir

logical upgrade

逻辑升级涉及使用备份或导出实用程序(如mysqldump)从旧MySQL实例导出SQL ,安装新的MySQL服务器以及将SQL应用于新的MySQL实例。
简单说明逻辑升级就是导出数据,然后升级,最后再导入数据;安全性高,主要针对数据量不大的数据库;常用的工具:mysqldump和Xtrabackup。

3.1 从以前的MySQL安装中导出现有数据:
mysqldump -u root -p
  --add-drop-table --routines --events
  --all-databases --force > data-for-upgrade.sql
注意
如果数据库包含存储的程序, 请使用--routines和 mysqldump的--events选项 (如上所示)。该 选项包括转储中的所有数据库,包括保存系统表的 数据库。 --all-databasesmysql

重要
如果您有包含生成列的表,请使用MySQL 5.7.9或更高版本提供的mysqldump实用程序来创建转储文件。早期版本中提供的 mysqldump实用程序对生成的列定义使用了错误的语法(Bug#20769542)。您可以使用该 INFORMATION_SCHEMA.COLUMNS 表来标识具有生成列的表。

3.2 关闭旧的MySQL服务器
mysqladmin -u root -p shutdown

3.3 安装MySQL 5.7
参考:
mysql 5.7.21 二进制安装

3.4 初始化新数据目录
mysqld --initialize --datadir=/path/to/5.7-datadir
复制'root'@'localhost' 显示在屏幕上的临时密码或写入错误日志以供日后使用。

3.5 使用新数据目录启动MySQL 5.7服务器:
mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir

3.6 重置root密码:
shell> mysql -u root -p
Enter passWord: ****  <- enter temporary root password
mysql> ALTER USER USER() IDENTIFIED BY 'your new password';

3.7 将先前创建的转储文件加载到新的MySQL服务器中
mysql -u root -p --force < data-for-upgrade.sql
注意
gtid_mode=ON如果转储文件包含系统表, 则不建议在服务器()上启用GTID时加载转储文件。 mysqldump为使用非事务性MyISAM存储引擎的系统表发出DML指令,并且在启用GTID时不允许这种组合。另请注意,将启用了GTID的服务器中的转储文件加载到启用了GTID的另一台服务器中会导致生成不同的事务标识符。

3.8 运行mysql_upgrade
mysql_upgrade -u root -p
mysql_upgrade检查所有数据库中的所有表是否与当前版本的MySQL不兼容。mysql_upgrade还会升级mysql系统数据库,以便您可以利用新的权限或功能。

注意
mysql_upgrade不会升级帮助表的内容。
3.9 关闭并重新启动MySQL服务器以确保对系统表所做的任何更改都生效。
mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir

三、大版本升级
概述

升级前的准备:
提前做好备份。
了解新版本变更的信息(哪些不再兼容,不再支持哪些功能)
在官方网站的general information—>what is new in mysql 5.7
升级的注意事项:

确认新版本是否有重大变更

注意 SQL mode 的变化

比如:在MySQL5.7中发生了SQL mode的变化,对不再支持的SQL mode,部分SQL会跑不通,此时可以清空SQL mode,跑完之后在设置SQL mode。

升级成功后,确认业务SQL是否可以跑通

程序层是否都正常

有时原使用的程序语言部分内容不被支持新版本数据库。比如,在5.1时用的是PHP4.0,但升级到5.6,php的某些函数不被支持。

在升级完成之后,一定要在测试时使用和线上版本相同的程序,测试是否存在问题。

存储引擎的变化

比如:在未来的5.8版本,不再支持myisam 引擎。

注意字符集的乱码问题

in-place upgrade

环境:

5.6.15 —>5.7.26

升级前的准备:

备份+留意新版本的变更内容
升级操作:

1、对5.7的软件包,下载,解压

#tar -xzvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
#ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql5.7
2、关闭当前MySQL(5.6)

#mysql -u root -p  --execute="SET GLOBAL innodb_fast_shutdown=0"
#mysqladmin -u root -p  shutdown
3、替换二进制文件(5.7 替换 5.6)

#cd /usr/local
#mv mysql  mysql5.6
#mv mysql5.7 mysql
4、使用现有的数据目录启动MySQL

#mysqld_safe --user=mysql -p --skip-grant-tables --datadir=/data/mysql/data
5、检查所有表是否与当前版本兼容,并更新系统库

#mysql_upgrade -uroot -p 
注:mysql_upgrade的作用是检查所有库的所有表是否与当前的新版本兼容,并更新系统库。
6、重启,确保对系统表所做的变更得以生效

#mysqld --defaults-file=/etc/my.cnf &
#mysql -uroot -p 
至此,升级完成。

跨大版本升级

一 数据备份
(1)查看当前版本:
[root@Centos ~]# mysql -V
(2)备份数据:
[root@centos ~]# mysqldump -u root -h 127.0.0.1 -P 3306 -p --all-databases > databases.sql
(3)备份my.cnf配置文件:
[root@centos ~]# cp /etc/my.cnf /home/
#在关闭MySQL的进程后开始升级
[root@localhost ~]# cd /usr/local/
[root@localhost local]# rm -rf mysql
[root@localhost local]# tar -jxvf /usr/local/src/mysql-5.7.26-linux-glibc2.5-x86_64.tar.bz2 -C ./
[root@localhost local]# mv mysql-5.7.26-linux-glibc2.5-x86_64 mysql
[root@localhost local]# cat /etc/ld.so.conf.d/mysql.conf#检查lib路径是否是对的/usr/local/mysql/lib
[root@localhost local]# ldconfig -v#重新加载最新的包到系统中,注意如果是依赖于MySQL的一些软件可能需要重新编译
[root@localhost local]# /etc/init.d/mysqld start#尝试启动,注意在MySQL 5.7中部分变量参数有取消,最好是在另外一台已安装的MySQL 5.7的服务器上查询my.cnf中的变量是否有存在,如不存在说明在新版本中已取消该参数需要删除直到启动为止
[root@localhost local]# /usr/local/mysql/bin/mysql_upgrade -u root -p#使用mysql_upgrade更新升级
在支持mysql_upgrade中会对旧版本的数据进行检查修改,确认升级成功后会进行升级,在升级完成后在databasedir下会生成mysql_upgrade_info记录最新的MySQL版本,启动MySQL,升级完毕

四、数据库升级建议及注意事项

升级部分并无太多区别和不同,更多需要注意版本升级后的不兼容,特性或函数的引用,以及SQL_mode的变更,需要业务进行配合测试,致使升级后数据与原数据无异样,才算升级成功,望知悉,并有测试环境进行配合测试。
您可能感兴趣的文档:

--结束END--

本文标题: MySQL升级

本文链接: https://www.lsjlt.com/news/38619.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql升级(物理升级)
    mysql升级是经常要做的工作,整理下升级步骤(物理升级) 1,关闭mysql服务 2,高版本软件覆盖低版本软件(替换掉basedir) 3,赋予新的高版本软件mysql权限 4,使用新的软件开启数据库 5...
    99+
    2022-10-18
  • MySQL升级
    一、概述 Linux MySQL 5.7二进制 小版本升级,升级前需要备份数据和mysql主配置文件my.cnf 对数据字典的升级数据字典有:mysql、information_schema、perform...
    99+
    2022-10-18
  • mysql 升级和降级
    1 官方推荐的两种升级方式:in-place upgradelogical upgrade2 升级之前:备份所有数据库,包括系统库mysql[root@Darren1 ~]# mysqldump -uroo...
    99+
    2022-10-18
  • mysql怎么升级
    mysql怎么升级?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql怎么升级1.从官网下载mysql新版本软件包2.卸载...
    99+
    2022-10-18
  • 如何升级MySQL
    这篇文章主要为大家展示了“如何升级MySQL”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何升级MySQL”这篇文章吧。MySQL升级的概述MySQL升级的实...
    99+
    2022-10-18
  • MySQL如何升级
    这篇文章给大家分享的是有关MySQL如何升级的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 MySQL5.7新增了不少新功能,比如:Online DDL、多源复制、增强半同步...
    99+
    2022-10-18
  • MySQL 5.6升级至MySQL 5.7--------版本升级最佳实战
    1. 背景   MySQL 5.7是当前MySQL最新版本,与MySQL 5.6版本相比,有如下特征  * 性能和可扩展性:改进 InnoDB 的可扩展性和临时表的性能,从而实现更快的网...
    99+
    2022-10-18
  • MySQL压缩包版升级:8.0.32升级到8.0.33(Linux)
    背景:请安全公司来扫描系统发现了mysql版本低,有漏洞,需要升级版本 不哔哔,直接上步骤: 1.备份数据库数据 # 1.查看datadir位置,进行数据文件备份[root@localhost ~]# cat /etc/my.cnf |gr...
    99+
    2023-09-27
    mysql linux 数据库
  • 在 Windows 上升级 MySQL
    在 Windows 上升级 MySQL 有以下几个步骤:1. 下载新版本的 MySQL 安装程序。可以从 MySQL 官方网站下载最...
    99+
    2023-10-20
    MySQL
  • MySQL数据库升级
    当前不少系统的数据库依旧是MySQL5.6,由于MySQL5.7及MySQL8.0在性能及安全方面有着很大的提升,因此需要升级数据库。本文通过逻辑方式、物理方式原地升级来介绍MySQL5.6 升级至MySQL5.7的方法,并介绍其...
    99+
    2018-01-24
    MySQL数据库升级
  • 2.11.1 Mysql 升级 Upgrade Methods
    1.升级方法 In-Place Upgrade: (就地升级)Involves shutting down the old MySQL version, replacing the...
    99+
    2022-10-18
  • APT怎么升级mysql
    小编给大家分享一下APT怎么升级mysql,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 升级mys...
    99+
    2022-10-18
  • Linux/Centos mysql5.1升级到5.6(rpm安装的mysql升级)
    升级之前,先把整个数据库备份一下,有备无患 备份数据库,升级MySQL通常不会丢失数据,但保险起见,我们需要做这一步。输入命令: mkdir /software 建立一个文件夹存放备份文件 mysqldu...
    99+
    2022-10-18
  • MySQL 5.6.27升级MySQL 5.7.18版本的升级步骤是怎么样的
    MySQL 5.6.27升级MySQL 5.7.18版本的升级步骤是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 ...
    99+
    2022-10-19
  • MySQL 5.1.73升级为MySQL 5.5.35详解
    一、前言 二、概述 三、安装MySQL 5.1.73 四、升级为MySQL 5.5.35 五、总结 注,测试环境 CentOS 6.4 x86_64,MySQL 版本(5....
    99+
    2022-11-30
    5.1.73 5.5.35 mysql
  • 升级 MySQL 的 Docker 安装
    在升级 MySQL 的 docker 安装之前,请确保遵循以下步骤 -下载 MySQL 服务器 docker 映像。启动 MySQL 服务器实例。从容器内连接到 MySQL 服务器实例。以下是将 Docker 安装的 MySQL 5.7 升...
    99+
    2023-10-22
  • MySQL升级从5.1.71到5.7.17
    最近系统漏洞扫描,扫出来很多MySQL的漏洞,没有什么好的办法,先升级到最新版本。在梳理MySQL数据库信息时发现有一套zabbix用的MySQL版本是5.1.71的,现在的最新版本是5.7.17,版本跨越...
    99+
    2022-10-18
  • 02-mysql升级篇(rpm方式+二进制方式升级)
    02-mysql升级篇(rpm方式+二进制方式升级) 升级方式一、rpm方式安装升级1、下载mysql-5.7.42安装包(mysql-5.7.37升级mysql-5.7.42)2、备份数据库...
    99+
    2023-09-27
    mysql 数据库 linux mysql升级 运维 运维开发
  • MySQL如何从5.5升级到8.0(使用命令行升级)
    目录准备1、下载要安装的mysql版本2、配置环境变量3、添加配置文件安装1、卸载MySQL5.52、安装新的MySQL8.0总结谁没事想重装数据库啊 学到了数据库原理,实验作业里面有新建角色的SQL语句,但是我打上去运...
    99+
    2023-03-06
    mysql5.0升级到8.0 mysql版本升级 如何升级mysql
  • 使用 MySQL SLES 存储库升级 MySQL
    MySQL 可以使用 MySQL SLES 存储库进行升级。让我们看看此升级所需的步骤。默认情况下,MySQL SLES 存储库将 MySQL 更新到用户在安装期间选择的发行系列中的最新版本要更新到不同的发行系列,已选择的系列的子存储库需要...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作