Se connecter à mysql base de données distante à l'aide de JDBC?

Je suis un java débutant et je travaille sur une application simple qui se connecte à une base de données mysql distante à l'aide de JDBC. Je l'ai testé en local et ça fonctionne très bien, cependant je ne peux pas le faire fonctionner sur mon serveur distant.
Je ne pense pas que sa de beaucoup utiliser mais voici le code:

Connection connection = null;
String dburl = "jdbc:mysql://314159265:3306/Db_Name";
String userName = "user";
String passWord = "password";

    try {
        Class.forName("com.mysql.jdbc.Driver");

        connection = DriverManager.getConnection(dburl, userName, passWord);
        Statement st = connection.createStatement();                                 

        String query = "INSERT INTO Example (`TestColumn`) VALUES('hello')";
        int rsI = st.executeUpdate(query);
        System.out.println("Hi");
        }catch (Exception e) {
        System.out.println(e);
    } finally {
        if (connection != null) {
            try {
                connection.close();
                System.out.println("Database connection terminated");
            } catch (Exception e) { /* ignore close errors */ }
        }
    }

Lorsque je l'exécute, j'obtiens le message suivant:

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.

Je suis sûr que ça doit être une sorte de problème de configuration du serveur.

 Notes:
 Username, password, IP, database name, etc. are just examples.
  • Juste une supposition ici, mais c'est votre hôte vraiment 314159265? Devrait-il être une sorte de propriété intellectuelle ou est-ce vraiment un nom DNS?
  • Faire, vous avez à mettre en place une sorte de ssh/ssl tunnel vers le serveur distant avant d'accéder au permis de conduire? Aussi pouvez-vous accéder à la base de données à l'aide d'une requête à distance par navigateur sur un système client? De mémoire je pense que vous devez le configurer de sorte que la base de données est exposée, par défaut, je suis sûr que les bases de données ne sont disponibles que sur l'hôte local donc, lorsque vous vous connectez à l'JDBC, vous serez à se faire rejeter. Je parie que votre code java fonctionne sur le même serveur que la base de données
  • Pouvez-vous atteindre la machine 31415... à partir de votre machine (lorsque vous exécutez le programme d')? Essayez de commande ping "adresse" ou telnet sur le port 3306
  • u ne essayez st.execute(querry); au lieu de int rsI = st.executeUpdate(query);
  • Avez-vous configuré la base de données distante pour accepter les connexions à distance à partir de cet utilisateur et d'accueil?
  • ses pas l'IP réelle
  • Vous avez qu'à cause de la connexion IP, qui a expiré. Vérifiez la connexion est toujours ouvert et d'accepter les demandes
  • Kaushik Oui
  • une question de plus. est-ce la trace de la pile complète. Pourriez-vous poster en concurrence trace de la pile
  • pas d'accès ssh/ssl tunnel. Comment puis-je configurer la base de données d'être exposés?
  • Kaushik, je n'avais aucune idée de ce qu'est une trace de la pile est de 30 secondes il y a, mais à partir de ce que je viens de lire oui c'est la trace de la pile complète.

InformationsquelleAutor Dangerosking | 2012-10-30