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 ...
随机推荐
- difference bewteen *args and **args in python?
It's also worth noting that you can use * and ** when calling functions as well. This is a shortcut ...
- java23
1:多线程(理解) (1)多线程:一个应用程序有多条执行路径 进程:正在执行的应用程序 线程:进程的执行单元,执行路径 单线程:一个应用程序只有一条执行 ...
- 各大安卓应用市场APP上传提交与收录
360 提交网址 应用宝 提交网址 百度 提交网址 91 提交网址 安卓 提交网址 PP助手 提交网址 小米 提交网址 华为 提交网址 OPPO 提交网址 魅族 提交网址 乐视 提交网址 豌豆荚 提交 ...
- 关于git的简单实用命令
时代在进步啊,现在已经不是svn的时代了,好多人都在使用git.所以自己也稍微学习了下git的使用. 常见的通过git提交代码步骤: git status :查看文件状态 :该命令显示你工程内修改的所 ...
- js对文本框特殊字符串过滤
HTML 中 onkeyup="stripscript(this)"; function stripscript(obj) { var s = $(obj).val(); var ...
- spring加载多个配置文件
首先我们都知道要使用spring,则需要在web.xml中增加如下代码: web.xml: 1:<listener><listener-class>org.springfram ...
- 17. Letter Combinations of a Phone Number
题目: Given a digit string, return all possible letter combinations that the number could represent. A ...
- (转)nginx优化 实现10万并发访问量
转自http://www.cnblogs.com/pricks/p/3837149.html 一般来说nginx配置文件中对优化比较有作用的为以下几项:worker_processes 8;1 ngi ...
- Swift - 生成随机颜色(Extension UIColor)
在开发中,我们有时需要生成一些随机的颜色.但 UIColor 没有提供方法或属性来直接获取随机颜色,这里对其进行扩展,方便使用. 1,扩展UIColor,增加随机颜色属性 1 2 3 4 5 6 7 ...
- Android开发之---Activity生命周期
Android开发中,有四大组件:Activity.Service.Content Provider.Broadcast Receiver,可以说,activity的使用是最频繁的了,这里来梳理一下与 ...