Classe connessione

di Anonimizzato26166 il
2 risposte
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

  • 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
  • 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