注:本文档以5.7.18为示例,如果需要升级到更高的mysql版本,请在下面网站自行下载。
Mysql下载地址:https://dev.mysql.com/downloads/mysql/
Redhat7操作系统需要自行下载。
升级目标MySQL版本5.7.18
一、前置条件
1. 停止 hive,ranger,oozie等使用MySQL的服务。
2.停止ambari-server
二、升级流程
1. 备份原MySQL数据库所有数据
mysqldump -u root -p123456 —all-databases > mysql_dump20170626
注:这个备份文件一定要多保存几份,如果一旦丢失,整个集群将不可恢复。
2. 开始进行MySQL升级
rpm -qa |grep mysql
卸载所有关于MySQL的rpm包
rpm -e mysql-devel-5.1.73-8.el6_8.x86_64 —nodeps
rpm -e mysql-server-5.1.73-8.el6_8.x86_64 —nodeps
安装新版本MySQLRPM包:
rpm -ivh mysql-community-devel-5.7.18-1.el6.x86_64.rpm —nodeps
rpm -ivh mysql-community-server-5.7.18-1.el6.x86_64.rpm —nodeps
rpm -ivh mysql-community-client-5.7.18-1.el6.x86_64.rpm —nodeps
rpm -ivh mysql-community-common-5.7.18-1.el6.x86_64.rpm —nodeps
rpm -ivh mysql-community-libs-5.7.18-1.el6.x86_64.rpm —nodeps
3.启动新的MySQL,测试使用是否正常。
service mysqld start
如果报错是因为没有删除原MySQL数据,导致新MySQL初始化失败,
删掉即可(rm -rf /var/lib/mysql/)。
cat /var/log/mysqld.log | more
2017-06-26T06:19:39.467476Z 1 [Note] A temporary password is generated for root@localhost: AxkSr(0suyuQ
找到root密码,然后登陆
mysql -uroot -pAxkSr(0suyuQ
修改密码然后给权限(密码和用户需要跟旧mysql一致):
set password=’123456’;
grant all privileges on . to ‘root’@’%’ identified by ‘123456’;
grant all privileges on .* to ‘root’@’localhost’ identified by ‘123456’;
测试客户端登陆使用新密码是否OK。
4.数据导入
切到 mysql_dump20170626所在目录下,进入新MySQL
mysql -uroot -p123456
执行: source mysql_dump20170626
没有报错即可。
替换jar
mv mysql-connector-java-5.1.42.jar mysql-connector-java.jar
然后把 新mysql-connector-java.jar同步到以下目录中:
/usr/share/java/mysql-connector-java.jar
/usr/hdp/2.4.0.0-169/kafka/libs/mysql-connector-java.jar
/usr/hdp/2.4.0.0-169/ranger-admin/ews/lib/mysql-connector-java.jar
/usr/hdp/2.4.0.0-169/hive/lib/mysql-connector-java.jar
/var/lib/ambari-server/resources/mysql-connector-java.jar
5.启动ambari,检查ambari是否正常。
ambari-server start
启动,查看日志是否有关于MySQL的报错。
查看界面是否正常
6. 通过ambari界面启动ranger,检查ranger是否正常。
7.通过ambari界面启动hive,检查hive是否正常。
启动,查看日志是否有关于MySQL的报错。
测试SQL是否能跑。