我的主机出现问题,因为我一直在阻止端口扫描。虽然他们已经将我列入白名单,但我的IP是动态的,所以这不是一个真正的解决方案。
我一直在检查,我用来直接连接到主机上我的MySQL数据库的2个应用程序是MySQL Workbench和我正在开发的应用程序。我猜测MySQL Workbench不是进行端口扫描的人,因为我明确要求它连接到端口3306。
另一方面,我制作的应用程序似乎并没有直接连接到该端口。我理解JDBC自动执行此操作,但它不是这样做的应用程序。因此,我的问题是,如何让我的应用程序直接指向端口3306?
我的应用程序也可能不是负责端口扫描的应用程序,而且还有其他东西,但是,我可以弄清楚是什么。我不使用任何类型的安全软件。
顺便说一句,在try / catch中,我在连接中做了catch,将db连接到我的localhost,以便我可以继续工作并测试我的应用程序。
这是我的代码:
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import Controller.utilidadesGenericas;
import Objetos.Generos;
import Objetos.Tema;
import Objetos.Usuario;
import Objetos.Videojuego;
import View.errorPopUp;
public class database {
protected Connection conexion;
protected Statement statement;
protected static String schema = "federicoanelli_S";
private static String host = "67.222.1.89";
private static String user = "federicoanelli_S";
private static String pass = "(PASSWORD HERE)";
private static String servidor = "jdbc:mysql://"+host+"/" + schema;
//protected static String schema = "Streamz";
//private static String user = "root";
//private static String pass = "";
//private static String servidor = "jdbc:mysql://localhost/" + schema;
public database() {
this.init();
}
public void init() {
try {
Class.forName("com.mysql.jdbc.Driver");//com.mysql.jdbc.Driver
conexion = DriverManager.getConnection(servidor, user, pass);
} catch (Exception e) {
this.schema = "Streamz";
this.user = "root";
this.pass = "";
this.servidor = "jdbc:mysql://localhost/"+this.schema;
try {
Class.forName("com.mysql.jdbc.Driver");
conexion = DriverManager.getConnection(servidor, user, pass);
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}//com.mysql.jdbc.Driver
catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}
}
public Connection getConexion() {
return conexion;
}
答案 0 :(得分:1)
您可以在主持人后直接添加端口:
private static String servidor = "jdbc:mysql://"+host+":3306/" + schema;
答案 1 :(得分:0)
您可以在网址中指定端口。另外,我会使用String.format(String, Object...)
来构建servidor
之类的
private static String host = "67.222.1.89";
private static int port = 3306;
protected static String schema = "federicoanelli_S";
private static String servidor = String.format("jdbc:mysql://%s:%d/%s",
host,port,schema);