mysql 升级和降级

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

1 官方推荐的两种升级方式:

in-place upgrade

logical upgrade


2 升级之前:

备份所有数据库,包括系统库mysql

[root@Darren1 ~]# mysqldump -uroot -p147258 -A -B  -F --master-data=2 --events --single-transaction>/tmp/mysqlall.bak

下载5.7.16二进制包,上传解压到/opt/mysql/目录下


3升级演示:5.7.14升级到5.7.16


方法一: in-place upgrade:

设置数据库关闭方式为slow方式,缓存中的数据在关闭之前全部落地:

[root@Darren1 data]# mysql -uroot -p147258 -e 'set global innodb_fast_shutdown=0;'


停止数据库服务:

[root@Darren1 data]# mysqladmin -uroot -p147258 shutdown


把之前5.7.14的软链接/usr/local/mysql删除,重新建立5.7.16软链接:

[root@Darren1 local]# rm -rf /usr/local/mysql

[root@Darren1 local]# ln -s /opt/mysql/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql


启动数据库服务:

[root@Darren1 ~]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &


检查所有库中所有表的兼容性:

[root@Darren2 data]# mysql_upgrade -uroot -p147258


检查结束后会在datadir目录下生成mysql_upgrade_info文件,记录了数据库版本。

停止数据库服务:

[root@Darren1 data]# mysqladmin -uroot -p147258 shutdown


启动数据库服务:

[root@Darren1 ~]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &

把启动5.7.16的启动脚本mysql.server复制到/etc/init.d/下,替代旧的mysqld.

[root@Darren1 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld



方法二:logical-upgrade


把mysql所有库导出来:

[root@Darren1 local]# mysqldump -uroot -p --add-drop-table --routines --events --all-databases --force >/tmp/data-for-upgrade.sql


停数据库服务:

[root@Darren1 local]# mysqladmin -uroot -p shutdown


创建新的目录存放5.7.16:

[root@Darren1 ]# mkdir -p /data/mysql/mysql3307/{data,logs,tmp}

[root@Darren1 data]# chown -R mysql:mysql /data/mysql/mysql3307


删除旧的软链接,重新创建软连接:

[root@Darren1 mysql]# ln -s /opt/mysql/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql


复制新的配置文件,并修改端口号为3307:

[root@Darren2 mysql3307]# cp /etc/my.cnf /data/mysql/mysql3307/my3307.cnf

[root@Darren2 mysql3307]# sed -i 's#3306#3307#g' my3307.cnf


指定配置文件初始化:

[root@Darren1 bin]# ./mysqld --initialize --defaults-file=/data/mysql/mysql3307/my3307.cnf 


查看错误日志,找到密码:

[root@Darren1 bin]# cat /data/mysql/mysql3307/data/error.log |grep password

2016-11-24T14:35:59.219125Z 1 [Note] A temporary password is generated for root@localhost: kU+Ve&lo6a/j


指定3307配置文件,启动数据库服务:

[root@Darren1 bin]# ./mysqld_safe --defaults-file=/data/mysql/mysql3307/my3307.cnf &


指定sock文件登陆,输入前面查看的密码:

[root@Darren1 bin]# mysql -uroot -p -S /tmp/mysql3307.sock

Enter password:   


重新修改密码:

mysql>alter user user() identified by '147258';


导入之前备份数据:

[root@Darren1 bin]# mysql -uroot -p -S /tmp/mysql3307.sock --force </tmp/data-for-upgrade.sql   


检查兼容性:

[root@Darren1 bin]# mysql_upgrade -uroot -p -S /tmp/mysql3307.sock


关闭服务器:

[root@Darren1 bin]# mysqladmin -uroot -p shutdown -S /tmp/mysql3307.sock

用5.7.16二进制包重新建立3307实例,把旧的5.7.14版本的3306实例数据导出,然后导入3307实例中,测试3307实例确保没有问题,然后删除3306实例,把3307实例端口改为3306.


4 降级演示:5.7.16降级5.7.14


方法一:in-place downgrade


设置数据库关闭方式:

[root@Darren1 local]# mysql -uroot -p -e 'set global innodb_fast_shutdown=0;'                       

停止数据库服务:

[root@Darren1 local]# mysqladmin -uroot -p shutdown


删除redolog文件:

[root@Darren1 data]# rm -rf /data/mysql/mysql3306/data/ib_logfile*


删除5.7.16软链接,并重新创建5.7.14软连接:

[root@Darren1 local]# rm -rf /usr/local/mysql

[root@Darren1 local]# ln -s /opt/mysql/mysql-5.7.14-linux-glibc2.5-x86_64 /usr/local/mysql


启动数据库服务:

[root@Darren1 local]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &


降级检查:

[root@Darren1 local]# mysql_upgrade -uroot -p


停止数据库服务,重新启动数据库服务:

[root@Darren1 local]# mysqladmin -uroot -p shutdown

[root@Darren1 local]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &



方法二:logical downgrade


备份降级前的所有库和表:

[root@Darren1 ~]# mysqldump -uroot -p147258 --add-drop-table --routines --events --all-databases --force> /tmp/data-for-downgrade.sql

初始化:

[root@Darren1 bin]# ./mysqld --defaults-file=/data/mysql/mysql3307/my3307.cnf --initialize

[root@Darren1 bin]# ./mysqld_safe --defaults-file=/data/mysql/mysql3307/my3307.cnf &

[root@Darren1 bin]# mysql -uroot -p -S /tmp/mysql3307.sock

mysql>alter user user() identified by '147258';

[root@Darren1 bin]# ./mysql -uroot -p147258 -S /tmp/mysql3307.sock</tmp/data-for-downgrade.sql

[root@Darren1 bin]# ./mysql_upgrade -uroot -p147258 --skip-version-check -S /tmp/mysql3307.sock



本文转自 Darren_Chen 51CTO博客,原文链接:http://blog.51cto.com/darrenmemos/1876646,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
9月前
|
SQL 存储 缓存
顺丰科技:从 Presto 到 Doris 湖仓构架升级,提速 3 倍,降本 48%
顺丰科技引入 Doris 替换 Presto,在内部可视化数据自助分析工具丰景台场景广泛应用。目前,顺丰临时查询业务、丰景台报表业务的 Presto 场景已经 100% 切换到 Doris 集群中,日均查询量 100W+。并实现 P95 性能提升近 3 倍,硬件资源节省达 48% 显著收益。
292 9
顺丰科技:从 Presto 到 Doris 湖仓构架升级,提速 3 倍,降本 48%
|
5月前
|
存储 自然语言处理 分布式计算
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
Apache Doris 3.1 正式发布!全面升级半结构化分析,支持 VARIANT 稀疏列与模板化 Schema,提升湖仓一体能力,增强 Iceberg/Paimon 集成,优化存储引擎与查询性能,助力高效数据分析。
751 4
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
|
存储 SQL 缓存
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
893 3
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
|
存储 人工智能 分布式计算
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
本文整理自阿里云产品经理李昊哲在Flink Forward Asia 2024流批一体专场的分享,涵盖实时湖仓发展趋势、基于Flink搭建流批一体实时湖仓及Materialized Table优化三方面。首先探讨了实时湖仓的发展趋势和背景,特别是阿里云在该领域的领导地位。接着介绍了Uniflow解决方案,通过Flink CDC、Paimon存储等技术实现低成本、高性能的流批一体处理。最后,重点讲解了Materialized Table如何简化用户操作,提升数据查询和补数体验,助力企业高效应对不同业务需求。
1073 18
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
|
11月前
|
存储 分布式计算 数据处理
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
215 1
|
SQL 存储 缓存
EMR Serverless StarRocks 全面升级:重新定义实时湖仓分析
本文介绍了EMR Serverless StarRocks的发展路径及其架构演进。首先回顾了Serverless Spark在EMR中的发展,并指出2021年9月StarRocks开源后,OLAP引擎迅速向其靠拢。随后,EMR引入StarRocks并推出全托管产品,至2023年8月商业化,已有500家客户使用,覆盖20多个行业。 文章重点阐述了EMR Serverless StarRocks 1.0的存算一体架构,包括健康诊断、SQL调优和物化视图等核心功能。接着分析了存算一体架构的挑战,如湖访问不优雅、资源隔离不足及冷热数据分层困难等。
|
关系型数据库 MySQL Linux
MySQL版本升级(8.0.31->8.0.37)
本次升级将MySQL从8.0.31升级到8.0.37,采用就地升级方式。具体步骤包括:停止MySQL服务、备份数据目录、下载并解压新版本的RPM包,使用`yum update`命令更新已安装的MySQL组件,最后启动MySQL服务并验证版本。整个过程需确保所有相关RPM包一同升级,避免部分包遗漏导致的问题。官方文档提供了详细指导,确保升级顺利进行。
1388 16
|
SQL 存储 分布式计算
MaxCompute近实时数仓能力升级
本文介绍了阿里云自研的离线实时一体化数仓,重点涵盖MaxCompute和Hologres两大产品。首先阐述了两者在ETL处理、AP分析及Serverless场景中的核心定位与互补关系。接着详细描述了MaxCompute在近实时能力上的升级,包括Delta Table形态、增量计算与查询支持、MCQ 2.0的优化等关键技术,并展示了其性能提升的效果。最后展望了未来在秒级数据导入、多引擎融合及更高效资源利用方面的改进方向。
|
关系型数据库 MySQL Linux
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
当MySQL 8.4启动时报错“io_setup() failed with EAGAIN”时,通常是由于系统AIO资源不足所致。通过增加AIO上下文数量、调整MySQL配置、优化系统资源或升级内核版本,可以有效解决这一问题。上述解决方案详细且实用,能够帮助管理员快速定位并处理此类问题,确保数据库系统的正常运行。
488 9
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
886 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展

推荐镜像

更多