首页 > 数据库 >Linux MySQL 5.7二进制 小版本升级

Linux MySQL 5.7二进制 小版本升级

时间:2023-06-21 14:59:00浏览次数:64  
标签:upgrade 5.7 -- MySQL 版本升级 mysql root

Linux MySQL 5.7二进制 小版本升级

Linux MySQL 5.7二进制 小版本升级

MySQL5.7二进制安装在Unix/Linux上升级时,分为就地和逻辑升级方法。

1 就地升级

就地升级包括关闭旧的MySQL服务器,用新的MySQL服务器替换旧的MySQL二进制文件或软件包,在现有数据目录上重新启动MySQL,以及运行mysql_upgrade。

1.1 XA事务InnoDB

如果您使用XA事务InnoDB,请XA RECOVER在升级之前运行以检查未提交的XA事务。如果返回结果,则通过发出XA COMMIT或 XA ROLLBACK声明来提交或回滚XA事务。

1.2 配置MySQL以通过设置innodb_fast_shutdown为 执行慢速关闭 0。

mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"

在关闭过程中,InnoDB执行完全清除并在关闭之前更改缓冲区合并,这可确保在发布版本之间存在文件格式差异时完全准备好数据文件。

在mysql关闭时,参数innodb_fast_shutdown 影响着表的存储引擎为innodb的行为。参数为0,1,2三个值。

0,代表当MYSQL关闭时,Innodb需要完成所有full purge和merge insert buffer操作,这需要花费时间来完成。如果做Innodb plugin升级,通常需要将这个参数调为0,,然后在关闭数据库
1, 是参数的默认值,不需要完成full purge和merge insert buffer操作,但是在缓冲池的一些数据脏页还是会刷新到磁盘。
2 表示 不需要完成full purge和merge insert buffer操作 ,也不将缓冲池中的数据脏页写回磁盘,。而是将日志都写入日志文件。这样不会有任何事物丢失,但是mysql在下次启动时,会执行恢复操作(recovery)

如果在上次关闭innodb的时候是在innodb_fast_shutdown=2或是mysql crash这种情况,那么它会利用redo log重做那些已经提交了的事务。
接下来的操作过程是:
(1). Rollback uncompleted transitions 取消那些没有提交的事务
(2). Purge all 清除无用的undo页
(3). Merge insert buffer 合并插入缓冲

1.3 关闭旧的MySQL服务器

mysqladmin -u root -p shutdown

1.4 安装新的MySQL二进制包

下载,解压新的MySQL二进制分发包;

授权:

chown -R mysql.mysql /usr/loacl/mysql_new

把MySQL的软连接指向新的mysql服务

unlink /usr/loacl/mysq
ln -s /usr/loacl/mysql_new /usr/loacl/mysql

1.5 使用现有数据目录启动新MySQL 5.7服务器

mysqld_safe --user=mysql --datadir=/path/to/existing-datadir

1.6 运行mysql_upgrade

mysql_upgrade -u root -p

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

  • 注意
    mysql_upgrade不会升级帮助表的内容。

1.7 关闭并重新启动MySQL服务器以确保对系统表所做的任何更改都生效

mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/existing-datadir

2 逻辑升级

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

2.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 表来标识具有生成列的表。

2.2 关闭旧的MySQL服务器

mysqladmin -u root -p shutdown

2.3 安装MySQL 5.7

参考:
mysql 5.7.21 二进制安装

2.4 初始化新数据目录

mysqld --initialize --datadir=/path/to/5.7-datadir

复制'root'@'localhost' 显示在屏幕上的临时密码或写入错误日志以供日后使用。

2.5 使用新数据目录启动MySQL 5.7服务器:

mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir

2.6 重置root密码:

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

2.7 将先前创建的转储文件加载到新的MySQL服务器中

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

2.8 运行mysql_upgrade

mysql_upgrade -u root -p

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

  • 注意
    mysql_upgrade不会升级帮助表的内容。

2.9 关闭并重新启动MySQL服务器以确保对系统表所做的任何更改都生效。

mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir

官网:

https://dev.mysql.com/doc/refman/5.7/en/upgrading.html

转载于:https://blog.51cto.com/moerjinrong/2324205

标签:upgrade,5.7,--,MySQL,版本升级,mysql,root
From: https://www.cnblogs.com/xulinforDB/p/17496185.html

相关文章

  • 记一次mysql小版本升级
    记一次mysql小版本升级最近对后端组件进行安全扫描时,发现了一些轻微漏洞,为了避免后续部署后安全扫描出现问题,决定对mysql做一次版本升级。升级的原则是对mysql的二进制文件进行升级,若有主备节点,先升级从节点升级完成后将其提为主节点,然后再升级原主节点。升级步骤:mysql当前版本......
  • mysql的备份恢复之-mysqldump
    1.目录目录1.目录2.一.背景2.1.分类2.2.基本实现原理3.非一致性备份和一致性备份原理3.1.非一致性备份原理:3.2.一致性备份原理:4.常用备份命令:4.1.建议生产上使用的备份命令:4.2.常用备份选项:4.3.参数详解:4.4.导入4.5.导入时记录日志到文件中2.一.背景2.1.分类......
  • mysql的备份恢复之percona-xtrabackup物理备份
    1.mysql的备份恢复之percona-xtrabackup物理备份目录1.mysql的备份恢复之percona-xtrabackup物理备份1.1.背景1.2.Xtrabackup是什么?1.3.使用场景1.4.Xtrabackup可以做什么?1.5.Xtrabackup版本及下载地址1.6.PerconaXtraBackup工作流程1.7.Xtrabackup使用说明文档1.8.X......
  • MySQL数据迁移之表空间传输
    MySQL数据迁移之表空间传输目录MySQL数据迁移之表空间传输背景环境迁移步骤1.准备源表2.将.ibd、.cfg和.cfp文件从database1复制到database23.在database1上解锁表4.在database2上创建表结构5.删除.idb文件6.复制表空间到数据文件目录7.导入表空间总结背景日......
  • mysql的体系结构
    1.mysql的体系结构目录1.mysql的体系结构1.1.MySQL体系结构1.2.存储引擎1.2.1.MyISAM存储引擎1.2.2.InnoDB存储引擎1.2.3.MEMORY1.2.4.BLACKHOLE1.3.msyql的文件1.3.1.物理文件1.3.2.日志文件1.3.3.配置文件1.3.4.数据文件1.3.5.pid文件1.3.6.socket文件1.4.区分......
  • mysql的二进制日志和中继日志文件的分析、恢复、清理
    1.mysql的二进制日志目录1.mysql的二进制日志1.1.概述1.2.MySQL中二进制日志(binlog)3种不同的格式(Mixed,Statement,Row)1.2.1.Row1.2.2.Statement1.2.3.Mixed1.3.binglog格式设置1.4.二进制日志文件的清理1.4.1.自动清理binglog1.4.1.修改过期时间1.4.2.手动清除......
  • mysqlbinlog命令详解
    1.mysqlbinlog命令详解目录1.mysqlbinlog命令详解1.1.初步了解binlog1.1.1.binglog简介1.1.2.mysqlbinlog常见的选项1.1.3.binglog对性能的损耗1.1.4.binlog日志的使用场景1.1.5.常用的binlog日志操作命令1.1.5.1.查看所有binlog日志列表1.1.5.2.查看master状态1.1.5.3......
  • mysql日志基本概念和启用
    1.mysql日志目录1.mysql日志1.1.概述1.2.MySQL日志文件分类1.2.1.错误日志1.2.2.二进制日志1.2.3.通用查询日志1.2.3.1.定位查询慢的sql1.2.3.2.慢查询日志的启动和参数说明;1.2.4.慢查询日志1.2.5.Innodb的在线redo日志1.2.6.更新日志1.3.日志启动1.4.总结1.4.1.b......
  • MYSQL 8 一个实例打开的表被那些参数和资源限制 分析
    再开始这个问题之前,我们先的准备一下环境,mysql8.0278G内存 SSD磁盘4核心CPU。同时通过sysbench来对系统进行测试数据的填充。首先安装sysbench并通过下面的命令来对mysqltest数据库产生10000万张表。sudosysbench/usr/share/sysbench/oltp_common.lua--mysql-host=......
  • Win10本地计算机上的MySQL服务启动后停止,通用解决方案
    这问题一搜,CSDN都让删data文件夹????解决方案:1、查看启动错日志  很明显我这里是端口占用导致的(没动过配置文件,之前能用,突然起不来了,大概率是这个问题) 具体问题具体分析,搜报错信息比直接搜“MySQL服务启动后停止”靠谱一些......