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 ...
随机推荐
- errno.h
linux 中c语言使用errno.h头文件来记录错误信息以及定义返回错误代码的宏. strerror(errno)打印错误信息 1. warning: implicit declaration of ...
- 批处理命令——call 和 start
一.call命令总结 [1]call命令简介 学过汇编或C的朋友,肯定都知道call指令表示什么意思.其实,在这里它的意思也是一样的.在批处理脚本中,call命令用来从一个批处理脚本中调用另一个批处理 ...
- apache自带的web监控器配置
第一:将mod_status模块放开,即去掉httpd.conf中的# 第二:在httpd.conf后面添加下面内容 <Location /server-status> SetHandle ...
- phpcms调用一个指定的栏目的url和栏目名称
{$CATEGORY[$catid]['url']} 指定栏目URL代码 {$CATEGORY[$catid]['catname']} 指定栏目名称代码 {$CATEGORYS[41]['url']} ...
- bootstrap 20161012
栅格系统 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="u ...
- 常见开发需求之angular上拉加载更多
需求 移动端使用angular实现上拉加载更多的条目,这个需求比较常见,网上的插件改动起来比较麻烦,不如自己写一个最适合,以前有同事写了一个,奈何bug太多,后来改分页了,我们产品说什么都让做,没 ...
- android tab选项卡的使用
项目做完了,写写博客,在项目中遇到的一些问题,或者是自己觉得很不错的东西.这一篇主要是想和大家分享一下我在项目中封装的一个东西,就是tab选项卡.先看看效果图: 我在网上看了很多有关选项卡的demo, ...
- 【原】iOS学习47之第三方-FMDB
将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 FMDB 第三方集成到工程中,具体请看博客iOS学习46之第三方CocoaPods的安装和使用(通用方法) 1. FMDB ...
- 【Unity3d游戏开发】unity3D OnTriggerEnter和OnCollisionEnter的一点个人心得(转载)
此文为转载,因为最近在做U3D,有一些概念弄得不是很清楚,看到这篇博客讲的不错,就转载过来了,方便自己随时查看. ------------------------------------------- ...
- POJ 3233 Matrix Power Series(矩阵等比求和)
题目链接 模板题. #include <cstdio> #include <cstring> #include <iostream> #include <ma ...