Openfire XMPP服务器配置远程MySQL数据库时出错。

3

最近我正在为我的XMPP服务器(Openfire)做集群准备。这就是为什么我需要使用相同的数据库设置多个Openfire服务器。

在使用远程IP设置Openfire服务器时,配置数据库时出现错误:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.GeneratedConstructorAccessor14.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1127)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:356)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2502)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2539)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2321)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.GeneratedConstructorAccessor11.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:187)
    at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)
    at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)
    at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102)
    at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.j

如果我做错了什么,请纠正我?

这段内容涉及IT技术。
2个回答

2

这似乎是一个网络/配置问题:连接被拒绝意味着服务器无法连接到您的数据库。

可能是因为数据库端口未公开或与默认值不同。很可能,机器的DNS /命名可能不正确。


2

首先,将所有特权授予您的远程MySQL用户。为此,您需要按照以下步骤进行操作:

授予远程登录特权的步骤

运行命令:

  1. sudo vi /etc/mysql/my.cnf

  2. 将该行注释掉:- bind-address = 127.0.0.1/bind-address = 0.0.0.0 并退出。

  3. 登录到mysql并运行命令 GRANT ALL PRIVILEGES ON . TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

  4. 从mysql退出并运行命令 sudo service mysql restart

  5. 使用以下命令从本地服务器登录到此数据库以检查远程登录访问权限 mysql -uroot -p -h IP

** 如果成功登录,则表示已授予远程登录访问权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接