MySQL remoto in cPanel: consentire l'accesso esterno ai database

Per motivi di sicurezza, i database MySQL e MariaDB in cPanel sono configurati di default solo per connessioni locali, ad esempio dal vostro sito web ospitato sullo stesso server tramite localhost. Con la funzione MySQL remoto, è possibile consentire l'accesso ai propri database a host esterni selezionati.

Questo strumento è utile, ad esempio, se si lavora con un software di gestione database locale come MySQL Workbench, se si desidera collegare un'applicazione esterna o consentire l'accesso a un determinato database a un server di sviluppo.

Avviso di sicurezza: Consentite l'accesso tramite MySQL remoto solo a indirizzi IP di cui vi fidate ciecamente. Laddove possibile, abilitate sempre un indirizzo IP specifico ed evitate configurazioni generiche con il carattere jolly %, poiché consentirebbero l'accesso potenzialmente da qualsiasi fonte nel mondo.

Quando serve il MySQL remoto?

Il MySQL remoto è necessario quando la connessione al database non proviene direttamente dal sito web situato sul server di hosting, ma deve essere stabilita da un sistema esterno.

  • Sviluppo locale: Accesso dal proprio computer tramite MySQL Workbench, TablePlus, DBeaver o strumenti di database simili.
  • Applicazione esterna: Connessione da un software o da un server situato al di fuori del proprio ambiente di web hosting.
  • Server di sviluppo: Accesso a un database del proprio account di hosting da un ambiente di test o staging.
  • Analisi o manutenzione: Accesso temporaneo per analisi dei dati, migrazione o diagnosi degli errori.
Importante: Il MySQL remoto autorizza solo l'accesso di rete da un host specifico. In aggiunta, per connettersi rimangono necessari un utente database valido, la password corretta e i relativi permessi sul rispettivo database.

Abilitare un host esterno per il MySQL remoto

Per consentire a un dispositivo o server esterno di accedere al vostro database, è necessario autorizzare il suo indirizzo IP pubblico all'interno di cPanel.

  1. Accedete al cPanel.
  2. Nella sezione Database, aprite la funzione MySQL remoto.
  3. Individuate l'indirizzo IP pubblico del dispositivo o del server che deve connettersi.
  4. Inserite questo indirizzo IP nel campo Host.
  5. Opzionale: Aggiungete un commento, ad esempio PC Ufficio, Server Sviluppo o MySQL Workbench.
  6. Cliccate su Aggiungi host.

Dopo l'aggiunta, l'host abilitato sarà teoricamente in grado di stabilire una connessione con il server MySQL o MariaDB, a patto che anche il nome utente, la password, il nome del database e l'indirizzo del server siano corretti.

Nota sugli indirizzi IP dinamici: Molte connessioni Internet domestiche o aziendali ricevono regolarmente un nuovo indirizzo IP pubblico. Se il vostro indirizzo IP cambia, sarà necessario inserire il nuovo indirizzo all'interno di MySQL remoto.

Quali dati di connessione sono necessari?

Per una connessione esterna al database, all'interno del vostro programma o della vostra applicazione esterna saranno solitamente richiesti i seguenti dati:

Dato Descrizione Esempio
Server / Host Nome host (hostname) o indirizzo IP del server database vostrodominio.ch o indirizzo del server
Porta Porta standard per le connessioni MySQL 3306
Nome database Nome completo del database, incluso il prefisso cPanel utente_database
Nome utente Nome utente completo del database, incluso il prefisso cPanel utente_dbuser
Password La password impostata per l'utente database La vostra password del database
Errore comune: Molti problemi di connessione si verificano perché viene utilizzato solo il nome breve del database o dell'utente. In cPanel è obbligatorio utilizzare il nome completo comprensivo di prefisso, ad esempio utente_database invece di solo database.

Gestire o rimuovere gli host abilitati

Nella sezione MySQL remoto viene mostrato l'elenco degli host attualmente autorizzati. Controllate periodicamente questa lista e rimuovete le voci che non sono più necessarie.

  • Usare i commenti: Descrivete chiaramente ogni voce, in modo da poter ricordare facilmente in futuro il motivo per cui l'accesso era stato creato.
  • Revocare l'accesso: Rimuovete gli host non più necessari tramite l'apposita funzione di eliminazione.
  • Abilitazioni temporanee: Se l'accesso è stato concesso solo per una migrazione o una manutenzione, la voce dovrebbe essere rimossa subito dopo il termine dei lavori.

Caratteri jolly in MySQL remoto

A seconda della configurazione, cPanel può supportare i caratteri jolly per l'abilitazione degli host. Questo consente, ad esempio, di autorizzare intere subnet o intervalli IP. Una voce come 1.2.3.% coprirà tutti gli indirizzi IP all'interno di quel blocco specifico.

Attenzione: Utilizzate i caratteri jolly solo se sapete esattamente quali indirizzi IP state abilitando. Più l'intervallo è ampio, maggiore sarà il rischio di sicurezza. Un singolo IP statico rimane la soluzione di gran lunga più sicura nella maggior parte dei casi.

Problemi frequenti con le connessioni MySQL remoto

Se la connessione non funziona nonostante l'IP sia stato inserito, verificate i seguenti punti:

Problema Possibile causa Soluzione
Connessione rifiutata L'indirizzo IP esterno non è o non è più inserito tra gli host abilitati. Controllate il vostro attuale IP pubblico e inseritelo in MySQL remoto.
Timeout Un firewall, il router o la rete locale bloccano la connessione. Verificate se le connessioni in uscita sulla porta 3306 sono consentite.
Access denied Il nome utente, la password o i privilegi sono errati. Verificate l'utente database, la password e i relativi diritti in cPanel.
Unknown database Il nome del database è errato o incompleto. Utilizzate il nome completo del database comprensivo di prefisso cPanel.
Hostname errato Viene utilizzato localhost, sebbene la connessione avvenga dall'esterno. Utilizzate il nome del server esterno o il corretto indirizzo del server.

MySQL remoto e privilegi utente

L'abilitazione di un host tramite MySQL remoto non sostituisce l'assegnazione dei privilegi dell'utente del database. Un host esterno può accedere correttamente a un database solo se è presente anche un utente database che sia stato associato a quel determinato database.

In caso di problemi di connessione, verificate pertanto anche la sezione Database MySQL in cPanel:

  • L'utente del database esiste?
  • L'utente è associato al database corretto?
  • L'utente dispone di tutti i privilegi necessari?
  • La password è stata inserita correttamente nell'applicazione esterna?

Raccomandazioni di sicurezza per MySQL remoto

  • Abilitate solo indirizzi IP specifici, evitando intervalli inutilmente ampi.
  • Rimuovete le abilitazioni temporanee non appena avete terminato il lavoro.
  • Utilizzate password complesse e uniche per gli utenti del database.
  • Se possibile, utilizzate utenti database separati per applicazioni differenti.
  • Assegnate solo i privilegi strettamente necessari alle attività da svolgere.
  • Non salvate mai le credenziali del database in chiaro in file pubblicamente accessibili.
Alternativa per IP dinamici: Se il vostro indirizzo IP cambia di frequente o se cercate una soluzione più sicura per scopi amministrativi, a seconda del vostro piano di hosting può essere opportuno utilizzare un accesso SSH o un tunnel SSH. La disponibilità di questa opzione dipende dal tipo di hosting sottoscritto.

Riepilogo

Con MySQL remoto potete consentire a determinati dispositivi o server esterni l'accesso ai vostri database MySQL o MariaDB. Questa funzione è estremamente pratica per lo sviluppo, la manutenzione e le applicazioni esterne, ma va usata con estrema consapevolezza.

Per una connessione di successo, oltre all'abilitazione dell'host, sono necessari credenziali corrette, un utente database assegnato e i relativi privilegi.


Desiderate accedere al vostro database dall'esterno ma continuate a riscontrare errori di connessione?
Il team tecnico di CURIAWEB è a vostra disposizione per supportarvi nella verifica di MySQL remoto, dei privilegi utente e dei parametri di connessione.

Apri un ticket di supporto

Hai trovato utile questa risposta? 1 Utenti hanno trovato utile questa risposta (1 Voti)