Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java连接到MySQL web服务器?_Java_Mysql - Fatal编程技术网

如何使用Java连接到MySQL web服务器?

如何使用Java连接到MySQL web服务器?,java,mysql,Java,Mysql,好的,这里有一点背景: 我目前正在尝试开发一个推荐应用程序。在我们的网站上有一个链接,用户可以将他们的朋友推荐到我们的游戏服务器(Minecraft)。它将把推荐人的信息输入数据库(托管在我的网站上),并向“朋友”发送链接。朋友点击链接并输入他们的信息(这些信息也存储在数据库中)。所有这些都非常有效!(耶!)现在来看Java插件 应该发生什么… 我有一个事件监听器,每当用户登录到游戏时,它就会启动。基本上,它会检查数据库中用户的信息,如果用户符合标准,那么它会奖励他们额外的推荐商品 我现在想做什

好的,这里有一点背景:

我目前正在尝试开发一个推荐应用程序。在我们的网站上有一个链接,用户可以将他们的朋友推荐到我们的游戏服务器(Minecraft)。它将把推荐人的信息输入数据库(托管在我的网站上),并向“朋友”发送链接。朋友点击链接并输入他们的信息(这些信息也存储在数据库中)。所有这些都非常有效!(耶!)现在来看Java插件

应该发生什么…

我有一个事件监听器,每当用户登录到游戏时,它就会启动。基本上,它会检查数据库中用户的信息,如果用户符合标准,那么它会奖励他们额外的推荐商品

我现在想做什么…

现在,我基本上只是想让它连接并显示行的id,以及插件启用时的ref_id(reference id)。但是,我得到了以下错误:

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.
因此,不用多说,这里是我的单一Java文档。当然,这不是我数据库的真实用户名和登录信息但我希望这里有人能告诉我怎么了,因为我现在太迷路了

package com.arithia.plugins;

import java.sql.*;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.plugin.java.JavaPlugin;


public class ArithiaReferrals extends JavaPlugin implements Listener {
    // JDBC driver name and database URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://66.147.244.122:3306/graphja6_referrals";

    // Database credentials
    static final String USER = "fake_username";
    static final String PASS = "fake_password";

    @Override
    public void onEnable() {
        Connection conn = null;
        Statement stmt = null;

        try {
            // STEP 2: Register JDBC driver
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            // STEP 3: Open a connection
            getLogger().info("Connecting to database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            // STEP 4: Execute a query
            getLogger().info("Creating statement...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, ref_id FROM referred_users";
            ResultSet rs = stmt.executeQuery(sql);

            // STEP 5: Extract data from result set
            while(rs.next()) {
                // Retrieve by column name
                int id = rs.getInt("id");
                int ref_id = rs.getInt("ref_id");

                // Display values
                getLogger().info("ID: " + id);
                getLogger().info("Referral ID: " + ref_id);
            }

            // STEP 6: Clean-up environment
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se) {
            // Handle errors for JDBC
            se.printStackTrace();
        }finally{
            // finally block used to close resources
            try{
                if(stmt!=null)
                    stmt.close();
            }catch(SQLException se2){
            } // nothing we can do
            try {
                if(conn!=null)
                    conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            } // End Finally try
        } // end try
        getLogger().info("Goodbye!");
        getLogger().info("The [Arithia Referrals] plugin was enabled!");
    }

    @Override
    public void onDisable() {
        getLogger().info("The [Arithia Referrals] plugin was disabled!");
    }

    @EventHandler
    public void onPlayerLogin(PlayerLoginEvent e) {
        // "Check database for player..."
    }
}
其他信息…

数据库名称:graphja6\u参考

数据库表:引用的用户

注意:我不能完全确定
DB_URL
是否正确
66.147.244.122
是正确的IP,但我不能完全确定端口或其他任何内容,因此如果有人能够验证这一点,我将不胜感激


非常感谢你的帮助。

好吧,我只是个白痴

对于任何其他出现此错误的用户,您需要将远程连接的IP列入白名单,才能使其正常工作。这是一个防火墙的东西,根据您的主机,cPanel中可能有一个“远程MySQL”选项。将IP添加到尝试访问数据库的远程客户端,以便将其列入白名单


感谢每一位试图帮助我们的人。请删除tagI试图编辑它,但它已不存在。我道歉。我正在使用PHP创建数据库等等,这就是我将其包括在内的原因。我想现在修好了。很抱歉。这是否可能是防火墙相关的问题(在客户端和/或服务器上)?你服务器上的端口打开了吗?你确定远程服务器允许远程连接吗?@RafaelOsipov,我不确定。如何检查服务器上的端口是否打开?这就是要求您提供的内容