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



推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
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社区 版权所有