Classe connessione

di il
2 risposte

Classe connessione

Salve, sto cercando di connettere la mia app ad un database che gira su un cloud. Il codice seguente mostra la classe:
package model;
import java.sql.Connection;
import java.sql.DriverManager;


public class ConnectionClass {

public Connection connection;

    public Connection getConnection(){
        
        String dbServer = "mysql-42866-0.cloudclusters.net"; // change it to your database server name
        int dbPort = 19484; // change it to your database server port
        String dbName = "mysqlCinemates20";
        String userName = "admin";
        String password = "*****";
        String url = String.format("jdbc:mysql://%s:%d?user=%s&password=%s?autoReconnect=true&useSSL=false", 
                                    dbServer, dbPort, userName, password);
        try{
            Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
            connection=DriverManager.getConnection(url);
            System.out.println("Connected!");

        }catch (Exception e){
            e.printStackTrace();
        }

        return connection;
    }

}
Quando provo a connettermi mi dà il seguente errore:
Access denied for user 'admin'@'10.244.17.0' (using password: YES)

Ho provato a seguire qualche guida su internet su come modificare i privilegi dell'utente ma non ci riesco. Ho utilizzato l'istruzione grant select, insert on mysqlCinemates20.* TO 'admin'@'10.244.17.0'; . Mi dà quest'altro errore:
ERROR 1410 (42000): You are not allowed to create a user with GRANT

Forse sbaglio nell'inserire l'ip? Ho inserito l'ip che mi restituiva nel primo errore. Ho sbagliato qualcosa nel codice? Non sto capendo

2 Risposte

  • Re: Classe connessione

    Ciao

    Così ad occhio direi che hai problemi con le credenziali di accesso.
    "Access denied" indica che la procedura ha raggiunto il database ed ha provato a fare la login che è fallita.

    Salvo cose strane, direi che il problema sia legato all'utente/password
  • Re: Classe connessione

    Secondo me il problema sta nel fatto che il provider che stai usando non permette la connessione diretta al DB da una rete esterna alla sua (cosa MOLTO probabile: nessuno aprirebbe al pubblico un DB, se non qualcuno che sappia esattamente quello che sta facendo ed in ogni caso, solo tramite tunnel ssh).

    Il messaggio d'errore è piuttosto eloquente: access denied for user 'admin'@'10.244.17.0': probabilmente lo username è corretto, probabilmente è corretta pure la password, ma l'utente admin non può accedere da quel IP.

    E l'errore successivo mi fa pensare che tu non abbia la possibilità di dare accesso dall'esterno agli utenti.
Devi accedere o registrarti per scrivere nel forum
2 risposte