微信订阅号二维码

本页内容二维码:

本栏目热门内容
  • Acrobat虚拟PDF打印机执行...
  • LINKSYS交换机登录WEB界面...
  • 又一次RAID 5阵列故障记录...
  • 解决VMware vSphere ESXi ...
  • 修改CentOS发行信息以绕过...
  • Windows Server 2008 重命...
  • 解决虚拟化运行的 Windows...
  • Intel Nehalem CPU Errata...
  • 某卢瑟装机搞得一踏糊涂,...
  • 解决MySQL Cluster 备份总...
  • MegaCli安装及使用杂记
  • 解决WSUS显示客户端不全的...
  • 解决 VMWare vSphere 6 客...
  • 解决Windows Server 2008 ...
  • 本站服务器RAID 5阵列双硬...
  • 网站数据库从MySQL 5.0升...
  • 解决MariaDB使用Percona X...
  • 修改arpwatch使通知邮件主...
  • Linux 下的分区调整工具GP...
  • DELL PowerEdge 820 报CPU...
  • 程序员漫画:如何用8种不...
  • 解决很好用的多合一即时通...
  • 使用 GParted 进行虚拟机...
  • 解决Samba WINS服务的错误...
  • 解决Squid代理HTTP时在浏...
  • 用Delphi编写使用到ADO的D...
  • 网站简单改版
  • 索尼系列手提电脑备份失败...
  • Dell R900服务器 BMC firm...
  • 更多...

    网站数据库从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“合作伙伴”的一些挖掘
  • 返回页首