无法从外部ipv4地址连接到mysql服务器

sd2nnvve  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(412)

这个问题在这里已经有答案了

com.mysql.jdbc.exceptions.jdbc4.communicationsexception:通信链路故障(39个答案)
两年前关门了。
我的java应用程序出现问题已经有一段时间了。我尝试了几种方法来找出问题所在,从新的驱动程序到注册驱动程序,再到更改mysql数据库的权限。我只有在连接外部ip时才会遇到这个问题。我认为这可能与ipv6有关,但我试图在我的raspberry pi上禁用它,但当我运行“netstat-tlnp”时,我得到了以下结果:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      547/java            
tcp        0      0 0.0.0.0:8200            0.0.0.0:*               LISTEN      547/java            
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      547/java            
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::5900                 :::*                    LISTEN      -                   
tcp6       0      0 :::8080                 :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN

这表明mysql服务器仍然在运行tcp6的端口是8080,我把它从标准的3600改过来了。我的java主类如下所示:`publicstaticstringip//mysql server ip public static final string user=“user”的空变量//mysql服务器public static final string password=“pass”的用户名//密码为mysql服务器todo弄清楚如何隐藏密码静态连接conn//null connection to get connected to the mysql server public static scanner console=new scanner(system.in)//用于从控制台获取数字和字符串

/**
 * Runs the program
 * @param args
 */
public static void main(String[] args) {
    System.out.print("Internal or External IP (1 for Internal or 2 for external): ");
    int choice = console.nextInt();
    switch (choice){
    case 1:
        IP = "10.0.0.183";
        break;
    case 2:
        IP = "external ipv4 address";
        break;
    }
    //TRY CATCH method to ensure that the mySQL connection was successful
    try{
        conn = DriverManager.getConnection("jdbc:mysql://"+IP+":8080/mydb",user,password);
    }catch(SQLException e){
        System.out.println(e.getLocalizedMessage());
        System.exit(1);
    }`

这是我尝试连接到外部ipv4地址时遇到的错误“通信链路故障”
最后一个成功发送到服务器的数据包是0毫秒前。驱动程序尚未从服务器接收到任何数据包`
有没有人有解决办法或者需要我做些什么来帮助解决这个问题!谢谢!

v6ylcynt

v6ylcynt1#

您是否使用10.0.0.183创建了mysql用户?请使用此创建mysql用户,并提供授权和检查

相关问题