升级MySQL
一条规则: 不能跳过中间的几个版本。
从5.1到5.5
升级前的准备:
1、备份全部的数据
2、通过手册熟知 其中哪些是不兼容的或者说是哪些功能在新版本中已经实现。
3、执行mysql_upgrade 升级系统表。 该程序不会升级 help table
4、对于rpm包安装的DB,客户端和server端都要升级。
5、对于UDF,可能 出现的问题就是自己编写的和系统自带的冲突,这个时候只要删除即可。
6、对于稳定版的MYSQL,可以尝试直接移动format 文件和数据文件。
7、可以先对原先的MYSQL重名名目录名。新的MYSQL有问题的话,再重新命名回来。
8、对于my.cnf的修改, mysqld –print-defaults 可以使用这个进行检查。
9、对于 commands out sync 或者 unexpected core dumps  这个是由于旧的头文件和链接库。mysql.h file and libmysqlclient.a 检查这两个文件是否是 新版本的MYSQL
10、进行测试的时候,只需要就数据库的mysql 数据库的全部数据,和其他数据库的表结构。 然后在测试的DB 上进行升级。
对于新版本的数据库,相关程序接口,连接驱动程序 也应该进行相应的升级,
有可能出现 java 存储过程的问题。

对于复制过程的升级步骤;
升级过程是 先对所有的slave进行升级,最后升级master
降级过程:对于 sbr rbr有要求,要求 必须先应用完毕。

具体实施注意事项
1、备份的时候 用mysqldump 是最安全的。(因为是直接的SQL语句)
2、前期版本的bug或者其他问题在升级前是需要注意的。
配置文件的变化;
 innodb_file_io_threads 变为:
 innodb_read_io_threads and innodb_write_io_threads
3、对于存储过程中含有repaire table 并且带有use_frm的选项的时候,应将其先删除,因为该选项会重建索引,由于frm版本不一致会失败。
4、对于5.5中,flush tables 的一个变种:
     flush  tables  ta1_name [, tb1_name] ... with read lock
     对命令行中指出的表进行flush 和锁表操作。
     该语句执行的时候,会申请一个互斥锁,这个时候它会等待事务结束。然后会从table cache中flush tables,再重新打开表,再次申请锁并将锁的粒度有互斥降级为共享锁。这个时候其他线程就可以读取该表中数据。
     对于--skip-grant-tables 这个参数的理解:
     服务器在启动的时候,根本不会使用权限系统,这个时候任何人可以连接,不受限制的访问所有数据库。当然 使用 flush-priveliges 或者reload  我们又可以进行权限的检查。
5、对于5.5中,truncate table 对于 含有foreign key 的情况会报错。
6、在升级过程中,保留错误日志是很重要的,如果有错误信息正在写入error log ,这个时候执行
     flush logs  操作,这个时候 error-log  会变为 error-log.old 可能造成部分信息的丢失,
      最好是在启动mysql之前,将error log 移动到一个新的地方。
7、SQL语句的变化,
     delete 语句中的使用别名:
     Incorrect:
   DELETE FROM t1 AS a2 USING t1 AS a1 INNER JOIN t2 AS a2;
   DELETE t1 AS a2 FROM t1 AS a1 INNER JOIN t2 AS a2;
     Correct:
   DELETE FROM t1 USING t1 AS a1 INNER JOIN t2 AS a2;
   DELETE t1 FROM t1 AS a1 INNER JOIN t2 AS a2;

转载于:https://blog.51cto.com/weipengfei/1109962

MySQL5.1升级到5.5注意事项相关推荐

  1. mysql5.5升级到8_MySQL5.7升级到8.0过程详解

    前言: 不知不觉,MySQL8.0已经有好多个GA小版本了.目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了.本篇文章主要介绍从5 ...

  2. MySQL5.7升级到8.0 之后,配合ubantu18.04遇到的常规问题以及非常规问题的解决方案

    从MySQL5.7升级到8.0后首先会发现在创建用户和授权大大不同:其次还有更多常规问题以及非常规问题的解决方案 写本篇博客记录踩过的坑 MySQL8.0配合ubantu18.04 一.创建用户和授权 ...

  3. mysql 5.6 dmr_CentOS下mysql5.6升级5.7指南

    CentOS下mysql5.6升级5.7指南 前提你的mysql是通过yum安装,其他情况没有测试 Step 0. 检查是否是 yum安装的mysql yum list installed | gre ...

  4. mysql5.1.7升级到5.6_1 MySQL5.6 升级到 5.7 版本

    1 MySQL5.6 升级到 5.7 版本 目前未在生产环境中升级过数据库版本, 倒是在测试环境跟开发环境升级过 可以通过 mysqldump sql 文件进行升级, 也可以通过 mysql_upgr ...

  5. mysql升级 windows10_Windows10系统MySQL5.7升级到8.0

    记录MySQL5.0升级到8.0,卸载安装等 解决方案 1.停止MySQL服务 2.卸载MySQL相关的程序 step1:本次是win10系统环境;左下角点击:开始–>所有应用–>弹出最近 ...

  6. 基于 Openzeppelin 的可升级合约解决方案的注意事项

    基于 Openzeppelin 的可升级合约解决方案的注意事项 注意事项 构造函数 在编写可升级合约时请不要使用构造函数contructor(),我们知道可升级合约运行时逻辑与数据分离的,合约数据保存 ...

  7. 讲一讲mysql5.6升级到mysql8.0 之后,遇到的常规问题以及非常规问题的解决方案

    这个问题解决有一段时间了,但是想想解决时遇到的各种喜悦与绝望,觉得还是挺值得记录下来的. 上个星期,老总决定要使用mysql 8.0 的json函数来操作数据,于是去网上下了个mysql 8.0示例, ...

  8. mysql5.1升级到5.6_mysql升级5.1到5.6

    因为Ubuntu的apt库里MySQL最新版本依然是5.1,所以升级MySQL5.5 只有自行下载,并且由于两个版本间改动较大,所以务必先阅读官网的升级事项 upgrading from from M ...

  9. mysql-5.6 升级 5.7

    #准备工作 1.停机 [root@localhost local]# /etc/init.d/mysqld stop Shutting down MySQL.. [确定]2.切换版本 [root@lo ...

最新文章

  1. linux c select 服务器源码 简介
  2. 零基础如何入门数据分析?
  3. 调试兼容性该注意的的点
  4. Android 基础教程之-------Android ProgressBar的使用!
  5. 添加程序以DLL函数
  6. 中台不是万能药,关于中台的思考和尝试
  7. pytorch自定义模型执行过程
  8. bert 中文 代码 谷歌_ELECTRA中文预训练模型开源,110个参数,性能媲美BERT
  9. 软件使用时间限制_利用家长控制限制孩子使用电脑时间,让其只能学习不能玩游戏...
  10. 【转】vue项目打包部署——nginx代理访问
  11. 软件过程— 螺旋模型
  12. 人工智能——微粒群优化算法
  13. 同济大学计算机专业辅修声乐,同济大学关于本科生修读辅修专业的管理办法
  14. webim--web端即时通讯的实现
  15. OpenCV数字图像处理基于C++:灰度变换
  16. 使用druid-spring-boot-starter时设置监控界面登录信息的方法
  17. 电脑连不上网络,怎么办?
  18. 如何在linux centos 环境下运行.exe文件
  19. 医用雾化器单片机方案设计
  20. Python爬虫,京东自动登录,在线抢购商品

热门文章

  1. mac中flutter配置
  2. 借条的注意事项,上面不能有这3个字
  3. [转载]签名、加密、证书的基本原理和理解
  4. 编程沉思-做一款小巧而好用的截图软件
  5. 多層開發注重效率的注意點
  6. 基于StringTemplate的视图
  7. 解决360浏览器兼容模式的页面显示问题
  8. Tomcat启动之异常java.lang.IllegalStateException
  9. JAVA大文件上传断点续传解决方案
  10. Win7无法安装程序提示Installer integrity check has failed的解决方法