当我使用本地主机数据库时,它工作得很好,但是当我使用远程mysql数据库时,它在单独服务器启动时提示错误。
这是azkaban属性中的数据库设置:
# Data base
database.type=mysql
mysql.port=3306
mysql.host=xx.xx.xx.xxx
mysql.database=databasename
mysql.user=usrename
mysql.password=password
mysql.numconnections=100
错误日志:
2019/03/07 04:53:56.398 +0530 ERROR [MySQLDataSource] [Azkaban] Failed to find write-enabled DB connection. Wait 15 seconds and retry. No.Attempt = 2
java.sql.SQLException: Failed to find DB connection Or connection is read only.
at azkaban.db.MySQLDataSource.getConnection(MySQLDataSource.java:84)
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.project.JdbcProjectImpl.fetchAllActiveProjects(JdbcProjectImpl.java:102)
at azkaban.project.ProjectManager.loadAllProjects(ProjectManager.java:121)
at azkaban.project.ProjectManager.<init>(ProjectManager.java:88)
at azkaban.project.ProjectManager$$FastClassByGuice$$9a08937.newInstance(<generated>)
at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)