热门标签 | 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



推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
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社区 版权所有