mysql5.1升级到mysql5.6
这么大跨度的升级,本身不推荐.升级应该是循序渐进的,以防止不兼容.如果确实要这么做,你先要确保你的客户端管理工具要能兼容,比如phpmyadmin,此次升级依然存在一个问题,mysql server和mysql client不匹配的问题.
一.升级前
1.先备份数据
#mysqldump --all-databases -p -u root > /home/mysql.data.bak
2.停止原有的mysql服务
3.重命名my.cnf
4.为防止更新失败,快速恢复,同时拷贝一份mysql的datadir下的数据备份,以文件方式拷贝
二.从5.5开始,编译mysql需要用Cmake
安装cmake
#yum install cmake
三.编译安装mysql5.6
1.下载源码
进入http://dev.mysql.com/downloads/mysql/5.6.html#downloads
平台选择Source Code
选择5.6.22
#wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz
2.解压
#tar zxvf mysql-5.6.22.tar.gz
3.编译
#cd mysql-5.6.22
#cmake -DCMAKE_INSTALL_PREFIX=/usr-ext/local/mysql56-server -DMYSQL_UNIX_ADDR=/var/local/mysql/mysql56.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr-ext/local/mysql56-server/data -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
#make && make install
4.给予权限
#chown -R mysql:mysql /usr-ext/local/mysql56-server
后续服务启动,如果权限问题,请修改对应文件的权限
四.启动服务及数据更新
1.拷贝/usr-ext/local/mysql56-server下的support-files下的mysql.server到/etc/init.d下,重命名为mysqld
2.service mysqld restart
3.如果顺利启动,则开始更新数据,如果启动不了看my.cnf中的参数是否和mysql5.6兼容,笔者到这儿都是ok的,暂时未遇到问题
4.进入/usr-ext/local/mysql56-server的bin目录下,开始更新数据
#mysql_upgrade --protocol=tcp -P 3306 -u root
因为新的mysql5.6启动默认用了之前的my.cnf和数据文件,所以root密码是之前的
输入之前的root密码
提示失败
原因是mysql5.6默认是用的新的密码校验方式,旧的不兼容,现在要关闭该项安全校验
#vi /etc/my.cnf
增加
secure_auth = off
skip-grant-tables
重新启动mysql
再次更新,依然提示失败,大致意思是更新日志格式版本不符合,这个时候检查mysql的datadir下是否有之前的更新文件记录mysql_upgrade_info
如有
删除掉
再次更新
这时候更新开始了,提示检查都ok,但到mysqlcheck这儿爆出错误,更新继续失败,提示大致意思是,mysql服务端因为关闭了secure_auth,用的是旧的密码校验方式,但mysqlcheck这个client用了新的密码校验方式,连接不上
这,就蛋疼了,凝神静气,继续想解决办法.
现在的root密码因为是在旧的mysql底下生成的,所以是旧的密码格式.如何让他生成新的呢?
1.进入mysql命令行下,更改root密码
2.新建一个mysql的超级用户,比如root2,赋予全局权限
因为时间紧迫,也怕再出问题.毕竟是一个线上的服务器,用户那边催得紧.
选择第二种,进入phpmyadmin,新建一个超级用户root2
然后再次更新
#mysql_upgrade --protocol=tcp -P 3306 -u root2
顺利更新完毕.
编辑my.cnf,取消掉skip-grant-tables
重启mysql服务
至此更新完毕.话说到此,也是一头大汗啊.
然后开始测试数据的完整性和主从复制的一致性.
mysql5.1升级到mysql5.6的更多相关文章
- mysql5.6升级为mysql5.7部署jboss/wildfly应用项目
一.部署mysql5.7二进制版 解压tar -xvf mv mysql-5.7 /usr/local/mysql5.7 或者其他文件夹 cd /usr/local/mysql.57 usera ...
- Windows 10 将MySQL5.5升级为MySQL5.7
最近想学习一下java.找到一个开源项目需要mysql5.7.11+ 升级 电脑上装的是MySQL 5.5,准备直接升级到最新版本的5.7,对于MySQL好像并没有直接升级到最新版本的功能,下载了Wi ...
- mysql5.x升级到mysql5.7后导入之前数据库date出错的快速解决方法【mysql低版本数据导入到高版本出错的解决方法】
mysql5.x升级至mysql5.7后导入之前数据库date出错,这是由于MySQL的sql_mode的影响,解决方法如下所示: [具体参考:mysql的sql_mode详解]修改mysql5.7的 ...
- MySQL5.1升级5.6后,执行grant出错:ERROR 2013 (HY000): Lost connection to MySQL server during query【转载】
转载: MySQL5.5升级5.6后,执行grant出错:ERROR 2013 (HY000): Lost connection to -mysql教程-数据库-壹聚教程网http://www.111 ...
- mysql5.6升级及mysql无密码登录
mysql5.6升级 mysql5.6的升级可以分为以下几个步骤: 安全关闭正在运行的MySQL实例 把/usr/local/mysql 的连接由MySQL5.6更改为MySQL5.7 启动MySQL ...
- MySQL5.6.26升级到MySQL5.7.9实战方案【转】
MySQL5.6.26升级到MySQL5.7.9实战方案 转自 MySQL5.6.26升级到MySQL5.7.9实战方案 - 其他网络技术 - 红黑联盟http://www.2cto.com/net/ ...
- centos6.5环境通达OA数据库mysql5.0.67升级至mysql5.5.48方案
centos6.5环境通达OA数据库mysql5.0.67升级至mysql5.5.42方案 整体方案: 环境准备,在备用服务器安装mysql5.5数据库 1.停用生产环境的应用访问 直接修改web的访 ...
- mysql5.5.x升级到mysql5.6.x
大概步骤是: 把配置文件添加:skip-grant-tables参数,把basedir升级成新版本,启动mysql,执行命令:mysql_upgrade升级一下字典信息,然后flush privile ...
- Mysql5.5升级到5.6步骤详解 小版本大版本
http://blog.csdn.net/i_team/article/details/9935693 小版本升级,先关闭数据库,然后mv直接全部替换掉mysql目录下的bin/ ,lib/ ,sha ...
随机推荐
- python之路四
内建函数 内建函数详解: 1. abs(x) abs()函数返回数字(可为普通型.长整型或浮点型)的绝对值.如果给出复数,返回值就是该复数的模.例如: >>>print abs(-2 ...
- [k]优雅的css
1.图片文字列表 (2016-01-25) 1.1 实现效果图如下: 1.2 代码: html:( 代码十分优雅哦! ) <ul> <li class="step1&quo ...
- servlet 之 response 回复 字节流 字符流
重定向 设置状态吗为302 添加响应头Location(告诉他重定向到哪里去) //response.setStatus(302); //添加响应头Locatio ...
- linux启动和关闭
startup,startup mount,startup nomount之间的区别: STARTUP NOMOUNT选项:(读初始化参数文件,启动实例)STARTUP NOMOUNT选项启动实例,但 ...
- iOS开发UI篇—核心动画(关键帧动画)
转自:http://www.cnblogs.com/wendingding/p/3801330.html iOS开发UI篇—核心动画(关键帧动画) 一.简单介绍 是CApropertyAnimatio ...
- 与你相遇好幸运,使用gulp流程化Typescript后端开发
tsc --init { "compilerOptions": { "module": "commonjs", ...
- 【tornado】系列项目(二)基于领域驱动模型的区域后台管理+前端easyui实现
本项目是一个系列项目,最终的目的是开发出一个类似京东商城的网站.本文主要介绍后台管理中的区域管理,以及前端基于easyui插件的使用.本次增删改查因数据量少,因此采用模态对话框方式进行,关于数据量大采 ...
- UVA 11645 Bits(组合数学)
从左往右处理,左半部分记为left, 右半部分记为right,若i,i -1均为1, 贡献为ans += (left + 1) + right * (1ll << (i - 1)); 否则 ...
- Js中最常见的异常捕捉 TryCatch
今天检查网页的时候因为一段Js报错 导致下面的js没有执行(一个js动态添加的弹窗没有出现) 原因是因为 一个属性本身是undefined 找不到 无法给他赋值 这里的原因很简单 也已经修改好了但是这 ...
- 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
Redis数据类型 与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多,常用的数据类型主要有五种:String.List.Hash.Set和Sor ...