Ambari-Ranger组件修改MySQL默认3306端口导致启动失败问题解决( Communications link failure)
目录
一、问题场景
安装 Ambari + HDP 集群,修改了 MySQL的默认端口,安装的时候没有问题,启动的时候 ranger Admin 报了如下的错误:
问题描述: 在Ambari页面,安装Ranger组件时,后台使用MySQL数据库的端口修改为:非默认端口3306 在启动、重启Ranger组件时报错:
/usr/jdk64/java/bin/java -cp /usr/hdp/current/... jdbc:mysql://namenode/ranger -u 'ranger' -p '******' -noheader ......
缺少端口号:3906,实际应该为:...... jdbc:mysql://namenode:3906/ranger ......
最后的报错如下:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 按照 这个信息去解决问题 ,走了弯路没有找到问题的根本原因。
二、解决方法
问题解决历程 一
起初真的以为是 MySQL什么连接超时原因,但我还是不敢确定,因为以前用MySQL默认的端口没有什么问题啊。
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
当数据库重启或数据库空闲连接超过设置的最大timemout时间,数据库会强行断开已有的链接,最大timeout时间可以通过命令show global variables like "wait_timeout";
查询:
mysql> show global variables like "wait_timeout";
+---------------+-------+
| VARIABLE_NAME | VALUE |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
1 row in set (0.00 sec)
但是做了以上的 配置后没有我又改了回去,排除了这种可能,于是觉得是不是Ranger 的坑 ,于是网上一搜,果然有人碰到了。
问题解决历程 二
ambari关于ranger的一个大坑----端口默认是3306,需要手动修改
ambari安装ranger的时候需要连接数据库,使用的是mysql数据库,这个时候你需要输入数据库root用户名和密码,因为需要连接root用户去创建新用户和数据库
问题就出在这里了,由于生产环境改了MySQL的默认端口,然而 ranger 的启动脚本使用的是默认的MySQL 端口。
/usr/jdk64/java/bin/java -cp /usr/hdp/current/... jdbc:mysql://namenode/ranger -u 'ranger' -p '******' -noheader ......
缺少端口号:33066,实际为:...... jdbc:mysql://namenode:33066/ranger ......
于是我进入启动脚本:vim /usr/hdp/current/ranger-admin/db_setup.py 搜索 jisql_cmd 的位置找到 jdbc:mysql:// 的地方手动修改就可以了,Ambari的版本不同, jdbc:myql 的位置可能不同。
切记: 是第一个 %s 的后面 加 修改后的 MySQL 端口
可能的问题: vim /usr/hdp/current/ranger-admin/db_setup.py 编辑文件后无法保存,就是 readonly ,可以尝试 sudo vim ,以root权限进入该文件。
相关文章
- mysql高性能分页语句_如何优化Mysql千万级快速分页
- 关于MySQL的SLEEP(N)函数
- MySQL 用 BETWEEN AND 日期查询包含范围边界
- MySQL第四讲 MySql Undo日志 - 对聚簇索引进行CUD操作
- mysql数据库提示本地无法连接远程服务器(Host is not allowed to connect to this MySQL server)解决办法
- 面试题:MySQL的原子性和持久性如何保证?
- 基于Java+MySQL实现的(Web)花卉后台管理系统【100010568】
- 大数据学习——sparkSql对接mysql
- MySQL各存储引擎
- Mysql 5.7源码编译启动 报error问题:The server quit without updating PID file (/data/data_mysql/mysql.pid).
- python操作mysql数据库系列-操作MySql数据库(四)
- python操作mysql数据库系列-安装MySql
- mysql分库 分表
- C Mysql API连接Mysql
- mysql导出数据报错The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- Java新手入门200例125之用C3P0连接Mysql实例
- mysql-数据库的主从同步,实现读写分离
- Ambari组件状态从MySQL同步到SQLServer或者MySQL