热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

centos6配置mysql远程访问_一次成功的MySQL升级失败教训

01---------------升级初探绝大多数的IT系统按照上线流程,大致划分为:开发、测试、预发、生产等四个环境,每一个环境都有其独

01bd6dc50d2a27da5c35937ba6053d5ca8.png

---------------

升级初探

绝大多数的IT系统按照上线流程,大致划分为:开发、测试、预发、生产等四个环境,每一个环境都有其独特的用途。昨天接到系统使用方的需求,要将生产数据同步到预发。在好奇心的驱使下,登入到预发环境一看,卧槽,,,登入到测试环境,卧槽槽槽...生产用的MySQL5.7.18,预发用MySQL5.6.26,测试用的MySQL5.6.25。为了愉快且平稳的使用MySQL,主要是方便DBA统一管理,除了都升级到5.7.18,也没有其他法子了。一次成功的升级失败教训,就这样经历了。

02bd6dc50d2a27da5c35937ba6053d5ca8.png

---------------

牛刀小试

在确定需要将测试和预发的环境都升级到MySQL5.7以后,就决定先挑个测试环境来小试牛刀。为了保障安全,一般情况下,后端服务系统与公网是不互通的,这就导致不能使用MySQL官方推荐,也是最方便的yum安装方式来进行升级了。另外,由于数据量较大,采用mysqldump将数据备份、恢复的逻辑升级方式由于速度较慢,在此场景下显然不合适;再结合系统停机不能过长这点要求,只能采用原地替换二进制包的方式,一次性将MySQL从5.6升级到5.7。

OS使用的是CentOS6.5,X86架构。由于前面提到的种种限制,需要按照以下步骤来完成升级:

  1. 根据OS版本,使用公网登入MySQL官方网站下载对应的rpm安装包到本地的电脑上

  2. 采用远程登入工具,将已下载到本地的rpm安装包上传到服务器,并完成解压

  3. 登入到MySQL系统上,将选项innodb_fast_shutdown的值设置为0,这样确保关闭MySQL服务时,将缓冲区的数据全部刷新到磁盘

  4. 运行mysqladmin,关闭MySQL服务

  5. 将MySQL数据文件夹和配置文件进行备份,万一升级失败,还可以借此回滚

  6. 查找并将系统上旧版本的二进制包清理干净

  7. 采用新上传到服务器的rpm二进制包,来部署一套MySQL环境

  8. 修改配置文件,将数据文件加改成原系统的路径,并重启MySQL服务,如果重启失败,可根据错误日志来进行修复

  9. 运行mysql_upgrade程序,检查并修复MySQL5.6与5.7不兼容的地方

  10. 兼容性问题完成后,在重启一遍MySQL服务,确保升级完成的系统可以交付给使用方

讲道理,按照以上步骤,应该很成功就完成升级。但是,在进行到步骤7,即安装rpm包的时候,却提示缺少glibc-2.14共享包,CSDN上搜索一遍之后,给出的解决方法是将系统原有的glibc-2.12升级到glibc-2.14。找到法子之后,就直奔gnu的官网,下载glibc源码,编译并进行安装。到目前,安装glibc-2.14看似一切顺利,歇了一会儿,使用cd命令切换路径时,辣眼睛的一幕发生了:cd命令不能用,在试一下ls命令,好像也不能用了;不知什么时候,到服务器的ssh连接直接断了,进行重连,却得到连接超时的反馈。开始意识到,通了个篓子。第一想法,这事已经超出我的能力范围,得靠我师傅来力挽狂澜了。师父的建议时,先保留现场,然后联系SA[系统管理员]进行修复。默默地看了一下时间,23:34:15,大概半小时后SA那边有了反馈:"系统加载共享包失败,机器搞坏了"。到此,测试环境的MySQL升级以失败收尾。

03bd6dc50d2a27da5c35937ba6053d5ca8.png

---------------

磨刀霍霍

第二天一大早,系统使用方围了过来,原来是他们需要使用测试环境的MySQL,但机器已经被俺给搞坏了。嗯,别打脸就好,其他随便.....在部门老大的协调下,另一名SA过来帮忙修复系统,使用镜像,以救援模式登入到系统,经过近一个小时的抢救,SA叹了一声:“卧槽,太慢了”,然后反馈系统已修复。到这里复盘了一下,找到rpm安装失败,提示缺少glibc-2.14的原因是:在CentOS6.5上使用了CentOS7.5的安装包,以至于提示共享包依赖确实。以上系统的对于关系为:
CentOS6.5-->glibc-2.12-->mysql*el6*.rpm, CentOS7.5-->glibc-2.14-->mysql*el7*.rpm。
定位到失败的原因后,从MySQL官方网站重新下载rpm包,测试环境的MySQL成功升级到MySQL5.7.18

04bd6dc50d2a27da5c35937ba6053d5ca8.png

---------------

挥快刀斩乱麻

在有了升级测试环境的经验之后,快到一挥,花了大概15分钟的时间,将预发环境的MySQL由5.6.26成功升级到5.7.18。接下来,等着老大一声令下,将5.7.18升级到8.0.21

6d02d7c8cbacd4e76af3b9cd61c86655.png



推荐阅读
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
author-avatar
晨风流云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有