http://blog.itpub.net/15480802/viewspace-1412259/

mysql升级

升级方式

分为In-place和out-of-place,前者直接覆盖当前版本,后者在新路径安装然后加载数据库;

升级不可跳级,即5.1要想升级成5.6,必须先升级到5.5;

注:oracle的out-of-place upgrade采用新binary直接加载原数据文件,而mysql需要导出--导入数据;

2 大致步骤

1 备份

2 升级

3 mysql_upgrade检查不兼容的表,更新grant表;

5.5升级5.6

1 备份  mysqldump –all-databases –routines - events

2 升级前,检查表和索引是否兼容http://dev.mysql.com/doc/refman/5.6/en/checking-table-incompatibilities.html

3 升级后调用mysql_upgrade,

注:对于大数据库,in-place upgrade可能要花费很长时间进行数据转换,对此可以创建一个dummy实例:包含mysql数据库和其他数据库的结构(不含数据),升级dummy并查看可能遇到的问题;

5.6很多参数的默认值都做了调整,详细可参考http://dev.mysql.com/doc/refman/5.6/en/upgrading-from-previous-series.html

3 mysql_upgrade

本质上为一个封装了mysqlcheck命令的脚本,流程如下:

1 mysqlcheck --no-defaults --databases --fix-db-names --fix-table-names mysql
2 mysqlcheck --no-defaults --check-upgrade --databases --auto-repair mysql
3 mysql < fix_priv_tables
4 mysqlcheck --no-defaults --all-databases --skip-database=mysql --fix-db-names --fix-table-names
5 mysqlcheck --no-defaults --check-upgrade --all-databases --skip-database=mysql --auto-repair

执行完毕后在数据目录生成mysql_upgrade_info文件,记录检查过的表,下次再调用时可以跳过;

执行步骤

1检查所有数据表同当前binary的兼容性,若不兼容则尝试修复,修复失败则必须手工执行;

手工修复:mysqldump重新加载或者null alternation(alter table t engine=innodb);

如果仅仅是修改表的collation,则可调用ALTER TABLE t1 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci;

2升级mysql系统表;

调用mysql_upgrade后,需要重启mysql才能让系统表更新生效;

如果单机运行了多个mysql实例,则指定连接参数

shell>mysql_upgrade --protocol=tcp -P 3306 [other_options]
shell>mysql_upgrade --protocol=tcp -P 3307 [other_options]

输出结果

Table upgrade required.

Please do "REPAIR TABLE `tbl_name`" or dump/reload to fix it!

4 Tip

1 可备份old mysqld,如果new mysqld运行出错可迅速切换;

2对于GA(general availability)版本间的升级,同一架构下的系统可以在两个版本间copy  mysql format file和数据文件;

3 不要使用old my.cnf,mysqld –print-defaults检查;

4重新安装perl DBD::mysql,以及PHP和Python相应的驱动包;

升级replication

同oracle一样,mysql支持low master – high slave复制模式(部分sql可能会出现错误),顺序颠倒过来则可能遭遇一系列错误(比如binlog不兼容/),因此升级master前须先升级slave;

对于需要重建表或索引的操作(collation变化需要重建index),最安全的办法是各自在master/slave单独执行期间(禁用replication);

1 关闭slave并升级,以—skip-slave-start选项启动,执行重建

2 master禁用binlog,执行重建

3 恢复原来设置,slave正常连接master

注:GTID=on会导致更新mysql系统表(myisam)失败,http://dev.mysql.com/doc/refman/5.6/en/mysql-upgrade.html

mysql升级小结和mysql_upgrade的用途的更多相关文章

  1. 修复 MySQL 数据库结构错误 – mysql_upgrade升级

    http://www.cnblogs.com/wjoyxt/p/5477072.html 不知道是不是每次更新 MySQL 软件之后都需要执行数据库升级指令?在我进行过的几次软件升级之后,总会在 My ...

  2. MySQL 升级详细步骤 (包括 Percona)

    MySQL 升级步骤 MySQL 5.1.72 升级到 MySQL 5.5.36 鉴于我在升级的时候遇到的麻烦问题,我觉得有必要把一些细节说清楚,免得引起误解了.感觉官方文档上的升级步骤写的比较简单, ...

  3. MySQL 升级方法指南大全

    原文:MySQL 升级方法指南大全 通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本.例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MyS ...

  4. MySQL升级后1728错误解决方案

    MySQL升级后1728错误解决方案 错误 # 1728,Cannot load from mysql.proc. The table is probably corrupted 造成原因:MySQL ...

  5. MySQL升级指南

    一 .MySQL升级 1.官方升级策略 注意 升级过程中必须使用具有管理权限的MySQL帐户来执行SQL语句. 1.升级方法 逻辑升级: 涉及使用 mysqldump从旧的MySQL版本导出现有数据 ...

  6. mysql升级的一些踩坑点

    升级的方法一般有两类: 1.利用mysqldump来直接导出sql文件,导入到新库中,这种方法最省事也最保险 缺点:大库的mysqldump费时费力. 2.直接替换掉 mysql 的安装目录和 my. ...

  7. Mac卸载mysql并安装mysql升级到8.0.13版本

    引言 今天mysql升级到8.0.13版本,遇到了很多问题,在此进行总结方便以后查看. 卸载mysql brew uninstall mysql sudo rm /usr/local/mysql su ...

  8. 【mysql升级步骤】windows mysql版本升级 ,mysql 5.6 升级到5.7.27

    最近博主由于工作原因需要把之前安装好的的mysql 5.6.44版本卸载,然后安装mysql 5.7.*版本. 前提:为什么要升级到5.7版本? 因为博主在5.6版本上执行脚本时候报出异常:to yo ...

  9. (2.1)mysql升级与降级

    (2.1)mysql升级与降级 转自:深入浅出mysql数据库开发.优化与管理第二版 1.mysql升级 2.mysql降级

随机推荐

  1. C# Code for Downloading Stock Symbols z

    http://www.jarloo.com/download-stock-symbols/ If your using C# you can easily get the XML data using ...

  2. iOS 7 自定义Back按钮 与 Pop interactive gesture 问题

    1.自定义Back按钮 iOS中很多时候我们都会自定义返回按钮,也是一件easy的事,类似如下: // 返回按钮 1 - (void)showNavBackButton { UIButton *bac ...

  3. Party at Hali-Bula

    题意: n个人参加party,给出n个人的工作关系树,一个人和他的顶头上司不能同时参加,party达到的最大人数并判断邀请的最大人数名单是否唯一. 分析: 树状dp入门 dp[i][f],以i为根的子 ...

  4. Apache OFBiz 学习笔记 之 服务引擎 一

    概述     服务定义为一段独立的逻辑顺序,当多个服务组合一起时可完成不同类型的业务需求     服务有很多类型,WorkFlow.Rules.Java.SOAP.BeanShell等.java类型的 ...

  5. VC++6.0 MFC播放视频

    注:需要在windows xp下才可以使用Windows Media Player插件,在windows 7下面会找不到该插件. 1.Windows Media Player控件的主要方法: 1)Ge ...

  6. bzoj 3884 上帝与集合的正确用法(递归,欧拉函数)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3884 [题意] 求2^2^2… mod p [思路] 设p=2^k * q+(1/0) ...

  7. git 记录

    在官网有详细的教程http://git-scm.com/book/zh/%E8%B5%B7%E6%AD%A5 查看分支和日志的两个工具:gitk 和 tig ,两个都有 --all 参数,可以查看所有 ...

  8. 树形DP CCPC网络赛 HDU5834 Magic boy Bi Luo with his excited tree

    // 树形DP CCPC网络赛 HDU5834 Magic boy Bi Luo with his excited tree // 题意:n个点的树,每个节点有权值为正,只能用一次,每条边有负权,可以 ...

  9. TopCoder SRM 605 DIV1

    604的题解还没有写出来呢.先上605的. 代码去practice房间找. 说思路. A: 贪心,对于每个类型的正值求和,如果没有正值就取最大值,按着求出的值排序,枚举选多少个类型. B: 很明显是d ...

  10. CentOS上firefox安装flash

    CentOS下firefox安装flash说明 CentOS下自带了firefox,但没有flash插件的,按它自己的提示安装不成功,需要手动安装,如下: 1.打开flash官网,http://lab ...