Quando serve l'accesso remoto

L'accesso remoto ti permette di collegarti al database MySQL da:

  • L'ambiente di sviluppo locale (XAMPP, MAMP, Docker)
  • I programmi per database sul computer (MySQL Workbench, DBeaver, Sequel Pro)
  • Altri server o applicazioni nel cloud
  • Script automatici e strumenti di backup
Nota di sicurezza: l'accesso remoto a MySQL apre un possibile varco. Attivalo solo quando serve davvero e usa sempre password robuste.

Attivare l'accesso remoto

Passo 1: aggiungi l'host remoto

  1. Accedi a EGPNL
  2. Vai su DatabaseMySQL remoto
  3. Inserisci il tuo indirizzo IP o nome host
  4. Fai clic su Aggiungi host
Come trovare il tuo IP: vai su whatismyipaddress.com per vedere il tuo IP pubblico attuale.

Passo 2: configura l'utente del database

Assicurati che l'utente del database abbia i permessi giusti:

  1. Vai su Database MySQL
  2. Verifica che l'utente abbia tutti i privilegi
  3. Oppure crea un utente dedicato all'accesso remoto

Impostazioni di connessione

Impostazione Valore
Nome host L'IP del tuo server oppure iltuodominio.it
Porta 3306 (la porta predefinita di MySQL)
Database your_database_name
Nome utente your_database_user
Password your_database_password

Collegarsi con MySQL Workbench

  1. Apri MySQL Workbench
  2. Fai clic su + per aggiungere una connessione
  3. Dai un nome alla connessione
  4. Imposta Nome host con l'indirizzo del tuo server
  5. Imposta Porta su 3306
  6. Inserisci il nome utente
  7. Fai clic su Store in Vault per la password
  8. Fai clic su Prova la connessione
  9. Fai clic su OK per salvare

Collegarsi da riga di comando

# Basic connection
mysql -h your-server.com -P 3306 -u username -p database_name

# Example
mysql -h server.egphp.com -P 3306 -u mysite_user -p mysite_db

Collegarsi con PHP (applicazione remota)

<?php
$host = 'your-server.com';  // Remote server hostname
$port = 3306;
$database = 'your_database';
$username = 'your_user';
$password = 'your_password';

// PDO Connection
try {
    $pdo = new PDO(
        "mysql:host=$host;port=$port;dbname=$database;charset=utf8mb4",
        $username,
        $password,
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    echo "Connected successfully!";
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

Consentire tutti gli host (jolly)

Per accettare connessioni da qualsiasi indirizzo IP:

  1. Vai su MySQL remoto in EGPNL
  2. Scrivi % come host
  3. Fai clic su Aggiungi host
Sconsigliato: aprire a tutti gli host (%) è un rischio. Usalo solo per una prova e poi rimuovilo. Quando puoi, indica indirizzi IP precisi.

Tunnel SSH (la via più sicura)

Per la massima sicurezza collegati attraverso un tunnel SSH:

Tunnel SSH da riga di comando

# Create tunnel
ssh -L 3307:localhost:3306 user@your-server.com

# In another terminal, connect via tunnel
mysql -h 127.0.0.1 -P 3307 -u dbuser -p database_name

SSH con MySQL Workbench

  1. Crea una nuova connessione
  2. Imposta il metodo di connessione su Standard TCP/IP over SSH
  3. Nome host SSH: your-server.com
  4. Nome utente SSH: il tuo utente SSH
  5. File della chiave SSH: la tua chiave privata (facoltativo)
  6. Nome host MySQL: localhost (oppure 127.0.0.1)
  7. Inserisci le credenziali del database
Perché un tunnel SSH? Cifra tutto il traffico e non obbliga ad aprire la porta MySQL 3306 verso internet.

Risoluzione dei problemi

Connessione rifiutata

  • Verifica che il tuo IP sia stato aggiunto a MySQL remoto
  • Controlla se il tuo IP è cambiato (potrebbe essere dinamico)
  • Assicurati che la porta 3306 sia aperta sul tuo firewall

Accesso negato

  • Verifica nome utente e password
  • Controlla che l'utente abbia i privilegi di accesso remoto
  • Assicurati che il nome del database sia giusto

Errori di tempo scaduto

  • Controlla se la rete o il firewall bloccano la porta 3306
  • Prova a passare da un tunnel SSH
  • Verifica che il server accetti connessioni

Togliere l'accesso remoto

Quando l'accesso remoto non ti serve più:

  1. Vai su MySQL remoto in EGPNL
  2. Individua la voce dell'IP o dell'host
  3. Fai clic su Elimina