Errore di connessione al database del suo negozio PrestaShop

HelpCenter

A proposito di questa formazione

Siamo qui per aiutarti

Hai difficoltà a prendere una decisione riguardo a questa formazione?

contact_support Chiedici qualsiasi cosa

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.

⚠️ Questo articolo è stato tradotto da un programma di traduzione automatica.