La connessione al database è il cuore delle operazioni del negozio PrestaShop: memorizza prodotti, ordini, clienti e tutti gli altri dati critici. Se questa connessione viene interrotta ("Accesso negato - Impossibile stabilire un collegamento con il database"), l'accesso al sito sarà bloccato e non sarà possibile effettuare vendite. Questo articolo illustra in dettaglio le cause, i passaggi diagnostici e le migliori pratiche per correggere e prevenire questi errori.
1 Capire l'errore di connessione al database
L'errore "Accesso negato - Impossibile stabilire un collegamento con il database" significa che PrestaShop non è in grado di stabilire un collegamento tra il suo sito e il server MySQL/MariaDB. Le cause principali sono :
- Dati di accesso errati (nome utente, password, nome del database, host)
- Diritti utente MySQL insufficienti
- Il server del database è inaccessibile o offline
- Problemi di configurazione del server o di hosting
- Incompatibilità della versione PHP/MySQL o sovraccarico del server
2 Diagnosi e fasi di risoluzione
Controllare i dettagli della connessione
I parametri di connessione sono nella cartella/app/config/parameters.php (PrestaShop 1.7+) o/config/settings.inc.php (versioni precedenti). Verifichi che i seguenti valori corrispondano a quelli forniti dal suo host:
-
database_host(oDB_SERVER) -
database_name(oDB_NAME) -
database_user(oDB_USER) -
database_password(oDB_PASSWD)
Un semplice errore di battitura in questi campi può generare un errore. In caso di dubbio, verifichi la connessione utilizzando uno strumento esterno (PHPMyAdmin, script di test PHP).
Controllare le autorizzazioni e i privilegi di MySQL
L'utente MySQL configurato deve avere diritti sufficienti (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER) sul database interessato. Verifichi o assegni questi diritti utilizzando l'interfaccia di gestione del suo host (cPanel, Plesk) o un comando SQL appropriato:
GRANT ALL PRIVILEGES ON nom_base.* TO 'utilisateur'@'localhost' IDENTIFIED BY 'motdepasse';
FLUSH PRIVILEGES;
Diritti insufficienti possono impedire la connessione o la registrazione dei dati.
Si assicuri che il server del database sia online
Il server MySQL/MariaDB deve essere operativo e accessibile dal suo hosting web. Si prega di controllare:
- Nessuna manutenzione o incidente da parte del provider di hosting.
- Che il nome dell'host (
localhostIP, o URL) è corretto - Che la porta utilizzata sia aperta (per impostazione predefinita, di solito 3306)
Utilizzi PHPMyAdmin o uno script PHP per testare la connessione. Su alcuni siti di hosting condiviso, l'accesso remoto al database potrebbe essere limitato.
Verifica la compatibilità della versione e la configurazione del server
Versioni incompatibili di PHP/MySQL possono causare errori di connessione. Per verificare queste compatibilità, vada all'articolo Requisiti per PrestaShop. Controlli anche i limiti del server:
-
memory_limit(512 M consigliato) -
max_execution_time(300 s o più) -
upload_max_filesize(64 M o più)
Adegui la configurazione su cPanel, oppure nella sezionephp.ini o.htaccess se necessario.
Analizzare i registri degli errori
Attiva la modalità di debug in PrestaShop (define('_PS_MODE_DEV_', true); inconfig/defines.inc.php) per visualizzare i messaggi di errore dettagliati. Vedere anche i file di registro :
-
/var/logs(PrestaShop 1.7+) - Registri del server web (Apache/Nginx)
- Registri degli errori in cPanel/Plesk
I messaggi possono aiutare a identificare un errore di sintassi SQL, un superamento della quota o un modulo difettoso.
3 Casi speciali ed errori comuni
Parametri sbagliati inparameters.php osettings.inc.php
Un errore in questi file è la causa più comune. Controlli ogni campo, soprattutto dopo una migrazione, un ripristino o un aggiornamento.
Problema dei diritti dei file
Le autorizzazioni devono essere 644 per i file e 755 per le cartelle. I diritti troppo aperti (777) espongono il suo sito al rischio di pirateria.
Sovraccarico o guasto del server MySQL
Un server sovraccarico o una configurazione inadeguata (risorse insufficienti, timeout troppo breve, quote superate) possono causare gli errori "MySQL server has gone away" o la perdita di connessioni. Monitorare l'utilizzo delle risorse e chiedere al suo provider di hosting di aumentare i limiti, se necessario.
Problemi di alloggio
Alcuni host applicano restrizioni specifiche (accesso remoto, limitazioni alle query, versione PHP). In caso di dubbio, contatti l'assistenza tecnica del suo host web per verificare la configurazione e le eventuali restrizioni in vigore.
4. buona pratica e prevenzione
- Protegga il suo accesso: non utilizzi mai l'utente root per PrestaShop, ma un utente dedicato con diritti limitati.
- Modifichi il prefisso della tabella durante l'installazione per limitare il rischio di SQL injection.
- Aggiorni regolarmente PrestaShop e i suoi moduli per beneficiare delle ultime patch di sicurezza.
- Esegua frequentemente il backup del database e dei file di configurazione.
- Monitorare la sicurezza (SSL, firewall, analisi antivirus) e la disponibilità del server.
5 Esempio di procedura di test di connessione
Può creare untest_db.php alla radice del suo sito per testare la connessione a MySQL:
<?php
$mysqli = new mysqli('database_host', 'database_user', 'database_password', 'database_name');
if ($mysqli->connect_errno) {
echo "Échec de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
} else {
echo "Connexion réussie à la base de données !";
}
?>
Sostituisca i parametri con quelli della sua configurazione. Se la connessione non riesce, il messaggio di errore visualizzato la guiderà alla causa precisa.
|
⚠️ Cancelli sempre i file di questo tipo dopo l'uso, perché rappresentano un potenziale rischio per la sicurezza. |
6 - Quando deve contattare il suo host web o un esperto?
Se, dopo tutti questi controlli, l'errore persiste, è probabile che il problema sia legato all'infrastruttura dell'host (guasto del server, manutenzione, restrizioni di rete). Contatti il supporto tecnico del suo host web con messaggi di errore dettagliati e un elenco di test già effettuati per accelerare la risoluzione.
7 Riepilogo dei punti chiave
- Controlli e corregga gli identificatori nel file di configurazione.
- Si assicuri che l'utente MySQL abbia i diritti necessari.
- Verifichi la disponibilità del server MySQL
- Verifica la compatibilità della versione e le risorse del server
- Analizzare i registri per affinare la diagnosi.
- Applicare buone pratiche di sicurezza e manutenzione
Seguendo queste istruzioni, la maggior parte degli errori "Accesso negato - Impossibile stabilire il collegamento al database" su PrestaShop può essere risolta in modo rapido e permanente, garantendo la disponibilità del suo negozio online e la sicurezza dei suoi dati.