网站数据库从MySQL 5.0升级到5.6的记录

作者:Sender  来源:WaveCN.com  发布日期:2014-11-02  最后修改日期:2014-11-02

这个网站用的MySQL一直都是CentOS 5自带的版本,一直升级下来到了5.0.95这个2012年的版本之后就再没变化。看看mysql网站上5.6都已经GA,想想也应该升级了,始终5.0.95已经严重过时。虽然CentOS本身提供了5.5.37的版本,但考虑后决定一步到位直接升级到5.6.21。觉得凭着自己多年用mysql的经验,升级过程应该很简单,其实却不然。

首先考虑安装源。可以在CentOS里面添加mysql的yum仓库源,也可以直接下载mysql的rhel5的rpm包来安装。考虑到并不是频繁升级,对数据库的版本其实也没有太特别的要求(暴露了这次的升级完全就是为了折腾...),所以直接下载rpm包来安装。下载点使用了搜狐的开源镜像:

wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-5.6.21-1.rhel5.x86_64.rpm-bundle.tar

然后解包:

tar xf MySQL-5.6.21-1.rhel5.x86_64.rpm-bundle.tar

卸载现行使用的版本:

service mysqld stop

rpm -ev --nodeps mysql-5.0.95-5.el5_9.i386 mysql-5.0.95-5.el5_9.x86_64 mysql-server-5.0.95-5.el5_9.x86_64

安装新版本:

rpm -ivh MySQL-client-5.6.21-1.rhel5.x86_64.rpm MySQL-server-5.6.21-1.rhel5.x86_64.rpm MySQL-shared-5.6.21-1.rhel5.x86_64.rpm

还原卸载时被改名的配置文件:

mv /etc/my.cnf.rpmsave /etc/my.cnf

以上都是轻车熟路了,然后简单地:

service mysql start

结果启动失败。于是,看日志查手册的过程开始了。最后总结如下:

1. innodb的主数据文件:ibdata1的大小,从旧版本的默认10M改为默认12M。结果,对于只有10M大小的ibdata1文件(一般地,如果数据库里面没有任何innodb表则ibdata1就是默认大小),如果配置里面没有专门说明,mysql启动时innodb engine初始化会失败,提示ibdata1大小和指定的默认大小不符。解决办法有两个方向:

1)如果要保留现有的ibdata1文件,则需要在/etc/my.cnf里面写清楚:

innodb_data_file_path=ibdata1:10M:autoextend

2)如果不保留现有的ibdata1文件,则直接删除ibdata1、ib_logfile0 和 ib_logfile1文件,让mysql根据内定的默认值自动创建。

2. 个别配置属性已经被取消,个别属性需要指定,于是修改配置文件。这个过程就不赘述了。不过,比较重要的变更是sql_mode,需要认真阅读手册。

修改完成后,启动mysql:

service mysql start

启动成功,但启动后进行mysql_upgrade操作时mysql服务一连接就崩溃。经查原因是新旧版本之间grant table差距太大导致。由于mysql_upgrade根本没机会运行,所以要在配置文件里面添加设定:

skip-grant-table

然后启动,启动后运行mysql_upgrade。当upgrade操作成功完成后,停止mysql服务,然后修改配置文件去掉skip-grant-table,再启动数据库。

本栏目相关
  •  2012-09-07 解决VMware vSphere ESXi 5.0 Update 1 中虚机不能自动启动的BUG
  •  2012-06-07 修改CentOS发行信息以绕过Dell服务器BIOS更新和DSET支持工具的操作系统检查
  •  2010-11-04 解决MySQL Cluster 备份总是失败,提示文件已存在的问题
  •  2015-05-11 解决Windows Server 2008 R2域控制器显示无法连接到Internet
  •  2014-11-02 网站数据库从MySQL 5.0升级到5.6的记录
  •  2014-11-19 修改arpwatch使通知邮件主题显示IP地址(我的CentOS 源码包修改实例)
  •  2009-05-31 放完假回来发现MySQL那边把Bug给确认了。好事!
  •  2009-05-27 发现了MySQL的一个BUG,报告了却没得到处理。
  •  2008-04-30 关于MySQL和Microsoft“合作伙伴”的一些挖掘
  • 微信订阅号二维码

    本页网址二维码:

    本栏目热门内容
  • Acrobat虚拟PDF打印机执行打印时挂起,解决办法竟然...
  • LINKSYS交换机登录WEB界面显示不正确的解决方法
  • 又一次RAID 5阵列故障记录
  • 解决VMware vSphere ESXi 5.0 Update 1 中虚机不能...
  • 修改CentOS发行信息以绕过Dell服务器BIOS更新和DSET...
  • 解决虚拟化运行的 Windows Server 2003 标准版出现...
  • Windows Server 2008 重命名域和域控制器
  • Intel Nehalem CPU Errata 导致 VMWare ESXi(vSpher...
  • 一次很精神的电脑组装过程记录(但不是自己的电脑)...
  • 解决MySQL Cluster 备份总是失败,提示文件已存在的...
  • MegaCli安装及使用杂记
  • 解决WSUS显示客户端不全的问题
  • 解决 VMWare vSphere 6 客户端无法修改用户密码
  • 解决Windows Server 2008 R2域控制器显示无法连接到...
  • 本站服务器RAID 5阵列双硬盘失效挽救记录
  • 网站数据库从MySQL 5.0升级到5.6的记录
  • 解决MariaDB使用Percona XtraBackup增量备份出错
  • DELL PowerEdge 820 报CPU3 INTERNAL ERROR 的解决...
  • Linux 下的分区调整工具GParted实战
  • 修改arpwatch使通知邮件主题显示IP地址
  • 程序员漫画:如何用8种不同的编程语言去解救公主
  • 解决很好用的多合一即时通信软件pidgin的崩溃问题
  • 解决Samba WINS服务的错误解释问题
  • 使用 GParted 进行虚拟机硬盘分区调整操作
  • 解决Squid代理HTTP时在浏览器出现Content Encoding ...
  • 用Delphi编写使用到ADO的DLL的一些问题
  • 网站简单改版
  • 索尼系列手提电脑备份失败,出现700错误的解决办法
  • Dell R900服务器 BMC firmware incompatible with C...
  • 更多...