java - 连接azkaban时MySql错误 "Cannot create PoolableConnectionFactory (Could not create connection to database server.)"?

标签 java mysql azkaban

我正在尝试将 Azkaban(hadoop 的作业调度程序)与本地 mysql 连接。 azkaban的配置文件如下:

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban

#Changed by Prakhar for azkaban , Azkaban
mysql.user=root
mysql.password= [ Password of mysql ]

我的 MySql 有一个名为“azkaban”的数据库,我可以使用命令登录 mysql:

./mysql -u root -p

mysql 也正在端口 3306 上工作,我已经验证了这一点。 我仍然无法连接到 mysql。 azkaban 的日志如下所示:

2020/04/11 22:38:05.584 +0530 ERROR [MySQLDataSource] [Azkaban] Failed to find write-enabled DB connection. Wait 15 seconds and retry. No.Attempt = 1
java.sql.SQLException: Cannot create PoolableConnectionFactory (Could not create connection to database server.)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2294)
    at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039)
    at azkaban.db.MySQLDataSource.getConnection(MySQLDataSource.java:76)
    at org.apache.commons.dbutils.AbstractQueryRunner.prepareConnection(AbstractQueryRunner.java:175)
    at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:286)
    at azkaban.db.DatabaseOperator.query(DatabaseOperator.java:68)
    at azkaban.executor.ExecutorDao.fetchActiveExecutors(ExecutorDao.java:53)
    at azkaban.executor.JdbcExecutorLoader.fetchActiveExecutors(JdbcExecutorLoader.java:266)
    at azkaban.executor.ExecutorManager.setupExecutors(ExecutorManager.java:223)
    at azkaban.executor.ExecutorManager.<init>(ExecutorManager.java:131)
    at azkaban.executor.ExecutorManager$$FastClassByGuice$$e1c1dfed.newInstance(<generated>)
    at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111)
    at 

最佳答案

一些可能有助于您解决问题的提示。

  1. 请检查安装的 MySQL 版本与用于构建 Azkaban 的 Gradle 文件中提到的 MySQL 客户端
  2. 优先使用MySQL 5.x版本
  3. 确保安装兼容的客户端版本
  4. 此外,在启动 Web 执行器之前在数据库中创建 Mysql 表

关于java - 连接azkaban时MySql错误 "Cannot create PoolableConnectionFactory (Could not create connection to database server.)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61188523/

相关文章:

hadoop - 如何有条件地安排Hadoop作业?

sqoop - 为什么我在 Azkaban 中的 Sqoop 任务在选择列后卡住了?

java - 从控制台执行时 System.out.println 不适用于线程

java - 获取 LocalDate 的周数(Java 8)

java - 如何让maven产生爆炸 war ?

php - 以表号形式给出数据库中的数据

php - 在php中添加一个删除按钮

Java 和 IP - 子网解析

mysql - 只有在没有 child 的时候才加入?

hadoop - Google Dataflow 的工作流程编排