Java 活动MQ-能够连接到其他机器MySQL,但不能连接到本地机器MySQL
我在一个公司网络中,在我们的项目中使用ActiveMQ。我试图在MySQL上持久化数据,而不是默认的KahaDB,并遵循 连接属性如下所示:Java 活动MQ-能够连接到其他机器MySQL,但不能连接到本地机器MySQL,java,mysql,activemq,Java,Mysql,Activemq,我在一个公司网络中,在我们的项目中使用ActiveMQ。我试图在MySQL上持久化数据,而不是默认的KahaDB,并遵循 连接属性如下所示: <bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassN
<bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/activemq"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
我注意到仍然有一些“连接”,因为有数据包发送和接收。尽管如此,activemq服务器仍无法启动
但是,当我将连接属性更改为登台服务器的ip地址时,activemq成功启动
我创建了一个代码段,尝试使用相同的连接属性连接到本地数据库,但没有引发任何错误:
public class ConnectionTest {
public static void main(String[] args) throws SQLException {
try (
BasicDataSource dataSource = new BasicDataSource()) {
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/activemq");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUsername("activemq");
dataSource.setPassword("");
dataSource.setPoolPreparedStatements(true);
Connection conn = dataSource.getConnection();
conn.close();
}
}
}
在我的代码片段中,我使用了mysql连接器java.5.1.49.jar和common-dbcp2-2.7.0.jar。这两个JAR也在activemq/lib/optional中
我尝试了127.0.0.1、localhost和我电脑的IP地址。都不管用
我可以尝试让active mq使用本地数据库的其他解决方案是什么?
谢谢:)谢谢@Kevin Boone指出SSL的问题。我在我的.ini文件中添加了以下内容:
ssl=0
然后重启mysql服务。现在,我的activeMQ代理可以连接到本地数据库。我不是MySQL方面的专家,但它看起来像是从失败的SSL握手中得到的异常结果。您希望MySQL服务器使用SSL吗?如果是,您是否已将相关的SSL证书从数据库导入到代理中?如果问题与SSL相关,那么使用
-Djavax.net.debug=SSL运行代理可能会揭示出问题所在。但是你希望通信被加密吗?如果您不知道,也许MySQL上的某些配置需要更改?@KevinBoone非常感谢!我在本地MySQL上禁用了SSL,活动MQ代理成功启动!
ssl=0