[Azkaban] Failed to find write-enabled DB connection. Wait 15 seconds and retry.

启动azkaban时报错:

2020/11/08 23:03:46.126 +0800 ERROR [MySQLDataSource] [main] [Azkaban] Failed to find write-enabled DB connection. Wait 15 seconds and retry. No.Attempt = 11
java.sql.SQLException: Cannot create PoolableConnectionFactory (Could not create connection to database server.)
	at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:669)
	at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:544)
	at azkaban.db.MySQLDataSource.getConnection(MySQLDataSource.java:78)
	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:69)
	at azkaban.executor.ExecutorDao.fetchExecutor(ExecutorDao.java:63)
	at azkaban.executor.JdbcExecutorLoader.fetchExecutor(JdbcExecutorLoader.java:291)
	at azkaban.execapp.AzkabanExecutorServer.initActive(AzkabanExecutorServer.java:278)
	at azkaban.execapp.AzkabanExecutorServer.start(AzkabanExecutorServer.java:247)
	at azkaban.execapp.AzkabanExecutorServer.launch(AzkabanExecutorServer.java:163)
	at azkaban.execapp.AzkabanExecutorServer.main(AzkabanExecutorServer.java:159)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.Util.getInstance(Util.java:386)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2575)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2311)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:347)
	at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55)
	at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355)
	at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115)
	at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665)
	... 11 more
Caused by: java.lang.NullPointerException
	at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3286)
	at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1987)
	at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1913)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1290)
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2493)
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2526)
	... 25 more

可能的原因:

  1. mysql在不同的主机访问权限。解决方案:

MySql中user表中主机配置 配置只要是root用户+密码,在任何主机上都能登录MySQL数据库。

1)进入mysql [root@hadoop102 mysql-libs]# mysql -uroot -p000000

2)显示数据库 mysql>show databases;

3)使用mysql数据库 mysql>use mysql;

4)展示mysql数据库中的所有表 mysql>show tables;

5)展示user表的结构 mysql>desc user;

6)查询user表 mysql>select User, Host, Password from user;

7)修改user表,把Host表内容修改为% mysql>update user set host=’%’ where host=‘localhost’;

8)删除root用户的其他host mysql>delete from user where Host=‘hadoop102 ‘; mysql>delete from user where Host=‘127.0.0.1’; mysql>delete from user where Host=’::1’;

9)刷新 mysql>flush privileges;

10)退出 mysql> quit;

2.查看azkaban-exec-server-0.1.0-SNAPSHOT/lib目录下mysql连接驱动包版本,是否与mysql匹配。不匹配修改之。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值