zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Ambari-Ranger组件修改MySQL默认3306端口导致启动失败问题解决( Communications link failure)

mysql组件 解决 修改 启动 默认 失败 端口
2023-09-11 14:22:11 时间

目录

一、问题场景

二、解决方法

问题解决历程 一

问题解决历程 二


一、问题场景

 

       安装 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权限进入该文件。