01

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

升级初探

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

02

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

牛刀小试

在确定需要将测试和预发的环境都升级到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升级以失败收尾。

03

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

磨刀霍霍

第二天一大早,系统使用方围了过来,原来是他们需要使用测试环境的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

04

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

挥快刀斩乱麻

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

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

  1. 腾讯云mysql如何设置远程访问_腾讯云主机 MySQL 远程访问配置方法

    使用腾讯云主机安装 MySQL 之后,需要通过以下步骤进行配置以实现远程访问,主要分为两大部分 一.服务器端口配置 1.如果你的云主机配置了安全组,如果没有配置安全组就可以直接跳过"步骤1& ...

  2. centos6.5 mysql 远程访问_CentOS 6.5 中安装 Mysql 5.6,并远程连接Mysql

    ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.在安装CentOS时,若选择的是Basic Server(可支持J2EE开发),则新安装好的CentOS系统中默认是已经安装了一个mysq ...

  3. 阿里mysql连接_[转]解决阿里云mysql不能连接,配置mysql远程连接

    默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放在/alidata/account.log 首先登录: mysql -u root -h local ...

  4. 腾讯云开放mysql端口_腾讯云服务器Mysql开启3306端口远程访问

    0. 概要现在需要使用自己计算机上的 Mysql Wordbench 客户端来连接云服务器上的 Mysql 数据库. 1. 记录过程查看Centos版本 [root@VM_0_7_centos ~]# ...

  5. ubuntu mysql 优化_在Ubuntu上使用MySQL设置远程数据库优化站点性能

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 介绍 随着您的应用程序或网站的增长,您可能已经超出了当前的服务器设置.如果您在同一台计算机上托管Web服务器和数据库后端,最好将这两个功能分 ...

  6. 本地连接linux mysql数据库_在本地连接远程MySQL数据库(Linux)

    尝试了两种在本地连接远程 MySQL 数据库的方式,一种是在本地使用 cmd 进行连接,还有一种就是使用 MySQL 的可视化工具 Navicate for MySQL 进行连接 一.对远程 MySQ ...

  7. 树莓派3 mysql端口_树莓派3 之 安装Mysql服务

    需求 在树莓派上 安装Mysql 服务,并开启远程访问 步骤 安装 mysql server$ sudo apt-get install mysql-server 我以为中间会让我提示输入 数据库ro ...

  8. opensips mysql 认证_基于ubuntu中使用mysql实现opensips用户认证的解决方法

    1 MySQL支持 1.1 MySQL模块支持 默认安装时,不包含MySQL模块. opensipsctlrc文件中包含了数据库配置的信息,要想让opensips支持mysql数据库,在编译安装的时候 ...

  9. 腾讯云 mysql 远程_腾讯云服务器 MySQL 远程连接设置

    问题说明 使用 MySQL GUI 连接腾讯云的 MySQL 服务器连接失败,经查是由三个原因引起的: 云服务器未配置安全组,开通 3306 端口. 数据库默认只允许本地连接,拒绝远程连接. 所使用 ...

  10. 怎么在Vc中打开MySQL数据库_在vc++中使用mysql数据库_MySQL

    vc++版本:v6.0 Host Info: localhost via TCP/IP Server Info: 5.0.67-community-nt Server Version: 50067 C ...

最新文章

  1. Thrift协议与传输选择
  2. 用shell解决ddos攻击实例
  3. Python编程入门到实践 - 笔记( 4 章)
  4. express的cookie解析和签名源码解析
  5. Java获取数据库表的字段信息,及如何将ResultSet转为json
  6. http报文格式_理解数据通信协议的报文格式有何用?
  7. android java加密_Android Java字符串加密
  8. 演练 青春不常在 0915
  9. Java中Lambda表达式的使用(转)
  10. 从SQL Server生成文档
  11. af_netlink_Linux Netlink通信机制详解(上)
  12. Java RSA加密(一)--BCD输出
  13. Python 爬虫工具 —— fake_useragent
  14. 戴尔笔记本计算机图标,戴尔笔记本原装桌面图标不见了怎么处理
  15. c语言函数参数从右往左,C语言函数入参压栈顺序为什么是从右向左?
  16. web js智能识别收货地址
  17. 计算机网络技术2020,计算机网络技术超星2020试题及答案
  18. Allegro整体旋转
  19. 边缘计算网关有哪些优势特色?边缘计算网关和智能网关的区别?
  20. iStoreOS 使用 阿里云 ddns + https

热门文章

  1. MembershipUserProvider For ScrewTurn 3.0
  2. 39.Linux/Unix 系统编程手册(下) -- 能力
  3. 12.GitLab System Hooks
  4. 15.Linux/Unix 系统编程手册(上) -- 文件属性
  5. 5.HTTP 常见状态码
  6. php中的全局变量$GLOBALS与global的区别
  7. css中的一些选择器的用法总结
  8. LoadRunner 12 和 UFT\QTP 12在HP官网已经可以开始下载了
  9. Netty源码分析第1章(Netty启动流程)----第3节: 服务端channel初始化
  10. 深入理解java内置锁(synchronized)和显式锁(ReentrantLock)