Errori di connessione database
Gli errori di connessione database sono tra i problemi più comuni nelle installazioni XOOPS. Questa guida fornisce procedure sistematiche di troubleshooting per identificare e risolvere i problemi di connessione.
Messaggi di errore comuni
Sezione intitolata “Messaggi di errore comuni””Can’t connect to MySQL server”
Sezione intitolata “”Can’t connect to MySQL server””Errore: Can't connect to MySQL server on 'localhost' (111)Questo errore di solito indica che il server MySQL non è in esecuzione o non è accessibile.
”Access denied for user”
Sezione intitolata “”Access denied for user””Errore: Access denied for user 'xoops_user'@'localhost' (using password: YES)Questo indica credenziali database errate nella tua configurazione.
”Unknown database”
Sezione intitolata “”Unknown database””Errore: Unknown database 'xoops_db'Il database specificato non esiste sul server MySQL.
File di configurazione
Sezione intitolata “File di configurazione”Posizione configurazione XOOPS
Sezione intitolata “Posizione configurazione XOOPS”Il file di configurazione principale si trova in:
/mainfile.phpImpostazioni database chiave:
// Database Configurationdefine('XOOPS_DB_TYPE', 'mysqli');define('XOOPS_DB_HOST', 'localhost');define('XOOPS_DB_PORT', '3306');define('XOOPS_DB_USER', 'xoops_user');define('XOOPS_DB_PASS', 'your_password');define('XOOPS_DB_NAME', 'xoops_db');define('XOOPS_DB_PREFIX', 'xoops_');Procedure troubleshooting
Sezione intitolata “Procedure troubleshooting”Passo 1: Verifica che il servizio MySQL sia in esecuzione
Sezione intitolata “Passo 1: Verifica che il servizio MySQL sia in esecuzione”Su Linux/Unix
Sezione intitolata “Su Linux/Unix”# Controlla se MySQL è in esecuzionesudo systemctl status mysql
# Avvia MySQL se non in esecuzionesudo systemctl start mysql
# Riavvia MySQLsudo systemctl restart mysqlPasso 2: Test connettività MySQL
Sezione intitolata “Passo 2: Test connettività MySQL”Usando la riga di comando
Sezione intitolata “Usando la riga di comando”# Test connessione con credenzialimysql -h localhost -u xoops_user -p xoops_db
# Se richiesto password, inseriscila# Successo mostra: mysql>
# Esci da MySQLmysql> EXIT;Passo 3: Verifica credenziali database
Sezione intitolata “Passo 3: Verifica credenziali database”Controlla configurazione XOOPS
Sezione intitolata “Controlla configurazione XOOPS”// In mainfile.php, verifica questi costanti:echo "Host: " . XOOPS_DB_HOST . "\n";echo "User: " . XOOPS_DB_USER . "\n";echo "Port: " . XOOPS_DB_PORT . "\n";echo "Database: " . XOOPS_DB_NAME . "\n";Passo 4: Verifica esistenza database
Sezione intitolata “Passo 4: Verifica esistenza database”# Connettiti a MySQLmysql -u root -p
# Elenca tutti i databaseSHOW DATABASES;
# Controlla il tuo databaseSHOW DATABASES LIKE 'xoops_db';
# Se non trovato, crealoCREATE DATABASE xoops_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# EsciEXIT;Passo 5: Controlla autorizzazioni utente
Sezione intitolata “Passo 5: Controlla autorizzazioni utente”# Connettiti come rootmysql -u root -p
# Controlla privilegi utenteSHOW GRANTS FOR 'xoops_user'@'localhost';
# Concedi tutti i privilegi se necessarioGRANT ALL PRIVILEGES ON xoops_db.* TO 'xoops_user'@'localhost';
# Ricarica privilegiFLUSH PRIVILEGES;Problemi comuni e soluzioni
Sezione intitolata “Problemi comuni e soluzioni”Problema 1: MySQL non in esecuzione
Sezione intitolata “Problema 1: MySQL non in esecuzione”Sintomi:
- Errore di connessione rifiutata
- Impossibile connettersi a localhost
Soluzioni:
# Linux: Controlla e avvia MySQLsudo systemctl status mysqlsudo systemctl start mysqlProblema 2: Credenziali errate
Sezione intitolata “Problema 2: Credenziali errate”Sintomi:
- Errore “Access denied”
- “using password: YES” o “using password: NO”
Soluzioni:
# Ripristina password (come root)mysql -u root -p
# Cambia password utenteALTER USER 'xoops_user'@'localhost' IDENTIFIED BY 'new_password';
# Aggiorna mainfile.phpdefine('XOOPS_DB_PASS', 'new_password');Problema 3: Database non creato
Sezione intitolata “Problema 3: Database non creato”Sintomi:
- Errore “Unknown database”
- Installazione fallita alla creazione database
Soluzioni:
# Controlla se database esistemysql -u root -p -e "SHOW DATABASES;"
# Crea database se mancantemysql -u root -p -e "CREATE DATABASE xoops_db CHARACTER SET utf8mb4;"Script diagnostico
Sezione intitolata “Script diagnostico”Crea uno script diagnostico completo:
<?phpecho "=== XOOPS Database Diagnostic ===\n\n";
// Check constants definedecho "1. Configuration Check:\n";echo " Host: " . (defined('XOOPS_DB_HOST') ? XOOPS_DB_HOST : "NOT DEFINED") . "\n";echo " User: " . (defined('XOOPS_DB_USER') ? XOOPS_DB_USER : "NOT DEFINED") . "\n";echo " Database: " . (defined('XOOPS_DB_NAME') ? XOOPS_DB_NAME : "NOT DEFINED") . "\n\n";
// Check PHP MySQL extensionecho "2. Extension Check:\n";echo " MySQLi: " . (extension_loaded('mysqli') ? "YES" : "NO") . "\n\n";
// Test connectionecho "3. Connection Test:\n";try { $conn = new mysqli( XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS, XOOPS_DB_NAME, XOOPS_DB_PORT );
if ($conn->connect_error) { echo " FAILED: " . $conn->connect_error . "\n"; } else { echo " SUCCESS: Connected to MySQL\n"; echo " Server Info: " . $conn->get_server_info() . "\n"; $conn->close(); }} catch (Exception $e) { echo " EXCEPTION: " . $e->getMessage() . "\n";}
echo "\n=== End Diagnostic ===\n";?>Documentazione correlata
Sezione intitolata “Documentazione correlata”- White-Screen-of-Death - Troubleshooting WSOD comune
- ../../01-Getting-Started/Configuration/Performance-Optimization - Ottimizzazione prestazioni database
- ../../06-Publisher-Module/User-Guide/Basic-Configuration - Configurazione iniziale XOOPS
- ../../04-API-Reference/Database/XoopsDatabase - Riferimento API database
Ultimo aggiornamento: 2026-01-31 Si applica a: XOOPS 2.5.7+ Versioni PHP: 7.4+