这么大跨度的升级,自己不推荐.升级应该是按部就班的,以防止不兼容.若是确实要这么作,你先要确保你的客户端管理工具要能兼容,好比phpmyadmin,这次升级依然存在一个问题,mysql server和mysql client不匹配的问题.php
一.升级前
1.先备份数据
#mysqldump --all-databases -p -u root > /home/mysql.data.bakhtml
2.中止原有的mysql服务mysql
3.重命名my.cnfsql
4.为防止更新失败,快速恢复,同时拷贝一份mysql的datadir下的数据备份,以文件方式拷贝安全
二.从5.5开始,编译mysql须要用Cmake
安装cmake服务器
#yum install cmaketcp
三.编译安装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服务
至此更新完毕.话说到此,也是一头大汗啊.而后开始测试数据的完整性和主从复制的一致性.