`

Mysql 5.0 升级到 5.1

阅读更多
简介:这是Mysql 5.0 升级到 5.1[CSDN迁移文章]的详细页面,介绍了和数据库,mysql Mysql 5.0 升级到 5.1[CSDN迁移文章]有关的知识,注:转载

如果仅仅是一个小数据量的schema,我想最简单的应用是使用mysqldump这种逻辑备份形式,更具有迁移性,但涉及到大量数据的时候,mysqldump需要花费大量的时间,另外导入也需要很多时间。

一 台已经使用了近3年的测试Mysql数据库服务器,已经存储了大量的schema ,而且一些schema内的表引擎有Innodb、MyISAM、MEMORY这几种引擎,数据量也比较大。昨晚公司突然停电,早上上班后发现系统已经点 不亮了,找人弄了台配置一模一样的机器接入原先的硬盘,经过漫长的文件系统检测修复后,顺利进入了系统。修改了网卡的udev配置后,又可以继续使用 eth0这个设备号。

对于mysql 5.0和 5.1间的差异导致的问题,我吃过几次亏,借此机会,我尝试升级这台服务器的相关服务组件,尽可能和生产环境的相似。由于数据量较大,以及本着学习的精神,探索一下一个合理的升级方案以备日后存在更大的数据库需要升级时提供些经验。

我开始认为从5.0 到5.1的升级应该不算复杂,版本号差异不大,应该可以完全通过拷贝文件的形式进行升级。然而这个实验我失败了,日志中提示授权表异常信息,我只能好好琢 磨一下Mysql的帮助文档以求解决问题。其实5.0 和5.1 是两个差异很大的版本,对于大版本间的升级,Mysql官方总是会给出升级说明 ,虽然描述的不是那么的清楚,但总算个指导手册。

安装官方的说明,想从5.0升级到5.1,首先需要在5.0的环境下执行针对5.1的权限升级脚 本"mysql_fix_privilege_tables.sql"。完成后可以使用mysqldump导出后再倒入到5.1的mysql中;也可以在 相同浮点格式的不同架构之间拷贝MyISAM表的文件,对于Innodb和MEMORY这类引擎,就没有这么幸运了,今天花费了不少时间来实验和寻找解决 办法。

其实在5.0的环境中执行了"mysql_fix_privilege_tables.sql"前,还有一些 很重要的工作需要处理的(如果现实的环境允许的话),那就是备份、和检查所有的schema内的表是否正常,并进行修复。前面我提到过这台测试服务器是经 历过突然断电的,开始我太理所当然的觉得不会有问题,仅仅是对整个mysql 5.0做了备份。但在升级的过程中发现,大量的表存在非正常关闭、受损的问题,为此我又切回到mysql 5.0的环境下先对这些表进行修复。今天庆幸做了两件正确的事情:

做了备份
同时在服务器上保留了两套mysql环境(为他们设置不同的目录,专门为他们准备不同的my.cnf配置文件和启动控制脚本)
当我在5.0的环境中完成了表的修复,"mysql_fix_privilege_tables.sql"的升级后,关闭5.0的服务。拷贝相应的 表文件、innodb文件、innodb日志到5.1的环境下。mysql 5.1能顺利启动了,出于安全起见,我又自行了一次表检查,并发现了innodb和memory引擎表的问题(我开始又理所当然的觉得他们应该是不会有问 题的了)。检测命令:
$MYSQL5.1_BIN_PATH/mysqlcheck -A –check-upgrade -s
-s参数能屏蔽那些正常的表的信息,通过这条命令,我发现有问题的都是innodb、memory引擎的表,提示我需要执行REPAIR TABLE或者dump/restore来修复这些表。这种情况下REPAIR TABLE命令是不管用了" The storage engine for the table doesn’t support repair ",dump/restore又跟我的初衷相违背。google上找到一些解决思想 ,通过ALTER TABLE tbl ENGINE=INNODB来重建,以符合当前的mysql版本。所以,对于此次的升级,较为合理的顺序将是:

1:备份(如果数据量还在容忍范围的话,对于太大的数据库,如果使用了lvm,仍可以通过快照的形式来进行备份)
2:在旧版本的mysql上检查、修复各个表 mysqlcheck --all-databases -s?? -f -o -c --auto-repair
3:执行目的版本的权限升级脚本 mysql --database=mysql < mysql_fix_privilege_tables.sql
4:停止旧版本的mysql。拷贝、移动表数据(表文件、innodb的相应文件,如果没有特殊设置,他们都在data目录下)到新版本的相应目录下。
5:启动新版本的mysql
6:检查新版本环境下所有表的情况mysqlcheck -A –check-upgrade –s
7:对于那些innodb已经memory引擎的表,需要执行下面的命令来修正 ALTER TABLE tbl ENGINE=INNODB?

对于现实中的一个生产环境,尤其是大数据的环境,仍然需要一些辅助措施才能顺利的完成升级和迁移。

使用lvm的快照技术更合理的进行备份
结合replication技术进行无中断的升级
分享到:
评论

相关推荐

    mysql5.0和5.1的jar包.zip

    在给定的压缩包“mysql5.0和5.1的jar包.zip”中,包含了不同版本的MySQL JDBC驱动程序,具体包括以下文件: 1. `mysql-connector-java-5.1.39.jar`:这是MySQL 5.1系列的JDBC驱动程序的一个较新版本,版本号为...

    手册系列更新(php5.0+mysql5.1+javascript+css2.0)

    本压缩包包含的"手册系列更新(php5.0+mysql5.1+javascript+css2.0)"是针对这四个关键技术的参考资料,旨在提供全面且方便的查询指南。 1. **PHP5.0**:PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言...

    MySQL 4.1 5.0 5.1 5.5 5.6各版本的主要区别

    在讨论MySQL 4.1、5.0、5.1、5.5以及5.6这些版本的主要区别时,首先要了解各个版本中引入的新特性以及改进的功能点,这对于数据库管理员(DBA)来说尤为重要,他们需要了解这些变化来确保数据库的稳定运行和性能优化。...

    mysql中文帮助5.1+5.0

    本文将深入探讨“mysql中文帮助5.1+5.0”提供的核心知识点,帮助用户更好地理解和操作MySQL。 首先,MySQL 5.1版本是MySQL历史上的一个重要里程碑,它在5.0的基础上引入了许多新特性和性能优化。5.1版强化了存储...

    MySql5.0安装及使用说明压缩包

    这个“Mysql5.0安装及使用说明压缩包”提供了全面的资源来帮助用户成功安装和操作MySQL 5.0。 首先,`MySQL_5.1_zh.chm` 文件是一个中文帮助文档,它包含了MySQL 5.1的详细信息,虽然标题中的版本是5.0,但通常5.1...

    mysql.data.dll 几乎所有版本

    5.1.5.0,5.1.5.0,5.1.5.0,5.1.5.0,5.1.5.0,5.1.5.0,5.1.5.0, 5.1.5.0,5.1.5.0,5.1.5.0,5.0.8.1,5.0.8.1,6.4.3.0,6.4.3.0, 6.4.3.0,6.4.3.0,6.4.3.0,6.4.3.0,6.4.3.0,6.4.3.0,6.4.3.0, 6.4.3.0,6.4.3.0,6.4.3.0,6.4....

    MySQL API 中文手册 v5.1官方中文版

    如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该手册涵盖了MySQL 4.1以及MySQL的所有早期版本。在手册的文本中,通过引用发布版本号(5.1.x),...

    Mysql5.1参考手册

    如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该手册涵盖了MySQL 4.1以及MySQL的所有早期版本。在手册的文本中,通过引用发布版本号(5.1.x),...

    mysql5.1 官方参考手册 中文

    如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该手册涵盖了MySQL 3.22、3.23、4.0和4.1系列。在手册的文本中,通过引用发布版本号(5.1.x),注明...

    mysql5.1中文手册

    如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该手册涵盖了MySQL 3.22、3.23、4.0和4.1系列。在手册的文本中,通过引用发布版本号(5.1.x),注明...

    代理授权查询系统_php防伪网站源码_PHP5.1+MYSQL5.0以上组合.zip

    代理授权查询系统_php防伪网站源码_PHP5.1 MYSQL5.0以上组合 (一) 建议运行环境需求:PHP5.1 MYSQL5.0以上组合 (二) 安装步骤: (1) Linux 或 Freebsd 服务器下安装方法。 第一步:使用ftp工具中的二进制模式,将该...

    mysql fornt 5.1安装包

    MySQL-Front登陆报错:10.000000错误是怎么回事? mysql-fornt3.2连接mysql5.1就会报错。 版本选择: mysql5.0 + mysql-fornt 3.2 mysql5.1 + mysql-front 5.1 问题解决啦

    mySQL tools for 5.0 汉化包

    这一步骤通常涉及到找到安装路径,例如"C:\Program Files\MySQL\MySQL Tools 5.0\local"(根据实际安装位置可能有所不同),然后覆盖原有的英文资源文件。需要注意的是,虽然此汉化包是针对5.0版本设计的,但根据...

    MySQL绿色精简版(5.1|5.5|5.7)三合一

    MySQL绿色精简版(5.1|5.5|5.7)三合一 内含5.1,5.5,57版本的mysql 绿色版本不写服务 不自启动 带管理bat root密码为空 平均7MB的压缩包大小,编程与本地测试的不二之选

    mysql5.1详解简体中文版

    MySQL 5.1是MySQL数据库管理系统的一个重要版本,它在5.0的基础上进行了多项改进和增强,为开发者提供了更高效、稳定和功能丰富的数据库管理工具。以下是对MySQL 5.1的一些关键知识点的详细说明: 1. **InnoDB存储...

    mysql jdbc 5.1.47

    Connector/J 5.1 支持Mysql 4.1、Mysql 5.0、Mysql 5.1、Mysql 6.0 alpha这些版本。 Connector/J 5.0 支持MySQL 4.1、MySQL 5.0 servers、distributed transaction (XA)。 Connector/J 3.1 支持MySQL 4.1、MySQL 5.0...

    mysqljdbc8.0.12

    Connector/J 5.1 支持Mysql 4.1、Mysql 5.0、Mysql 5.1、Mysql 6.0 alpha这些版本。 Connector/J 5.0 支持MySQL 4.1、MySQL 5.0 servers、distributed transaction (XA)。 Connector/J 3.1 支持MySQL 4.1、MySQL 5.0...

    MySQL5.1参考手册

    如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该手册涵盖了MySQL 4.1以及MySQL的所有早期版本。在手册的文本中,通过引用发布版本号(5.1.x),...

Global site tag (gtag.js) - Google Analytics