MySQL5.1升级到5.5注意事项

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:
 升级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;





本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1109962,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
监控 关系型数据库 MySQL
MySQL创建索引的注意事项
在数据库设计和优化中,索引的合理使用是提高查询性能和加速数据检索的关键因素之一。通过选择适当的列、了解数据分布、定期维护和监控索引性能,我们能够最大程度地发挥索引的优势,提高数据库的效率和响应速度。
82 0
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
209 0
|
7天前
|
监控 关系型数据库 MySQL
如何升级mysql的版本
如何升级mysql的版本
23 2
|
7天前
|
存储 监控 关系型数据库
如何升级MySQL版本?
如何升级MySQL版本?
14 2
|
1月前
|
SQL 存储 Oracle
MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行
MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行
33 0
|
3月前
|
存储 SQL 关系型数据库
【MySQL技术内幕】6.5-锁问题、阻塞、死锁、锁升级
【MySQL技术内幕】6.5-锁问题、阻塞、死锁、锁升级
119 2
|
2月前
|
关系型数据库 MySQL Java
软件开发2003 -Can·t to MySQL server on ‘xxxxxx‘(10038),宝塔初始化安装mysql,远程链接MySql注意事项,开始时服务器是没有放开端口的,宝塔也都开
软件开发2003 -Can·t to MySQL server on ‘xxxxxx‘(10038),宝塔初始化安装mysql,远程链接MySql注意事项,开始时服务器是没有放开端口的,宝塔也都开
|
2月前
|
存储 关系型数据库 MySQL
MySQL删除索引的方法与注意事项
MySQL删除索引的方法与注意事项
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
|
4月前
|
存储 关系型数据库 MySQL
AnalyticDB MySQL新购页面融合升级,提供企业版购买选项
AnalyticDB MySQL新购页面升级,现推出企业版和基础版,不再区分湖仓版和数仓版。企业版(集群模式)和基础版(单机模式)融合了弹性模式和预留模式的功能,提供资源隔离、弹性扩展及高性能查询,适合开发测试和生产环境,而基础版适用于小规模测试,不推荐用于生产环境。
AnalyticDB MySQL新购页面融合升级,提供企业版购买选项

热门文章

最新文章