Kesalahan Koneksi Basis Data
Kesalahan koneksi database adalah salah satu masalah paling umum dalam instalasi XOOPS. Panduan ini memberikan langkah-langkah pemecahan masalah sistematis untuk mengidentifikasi dan menyelesaikan masalah koneksi.
Pesan Kesalahan Umum
Section titled “Pesan Kesalahan Umum””Tidak dapat terhubung ke server MySQL”
Section titled “”Tidak dapat terhubung ke server MySQL””Error: Can't connect to MySQL server on 'localhost' (111)Kesalahan ini biasanya menunjukkan server MySQL tidak berjalan atau tidak dapat diakses.
”Akses ditolak untuk pengguna”
Section titled “”Akses ditolak untuk pengguna””Error: Access denied for user 'xoops_user'@'localhost' (using password: YES)Hal ini menunjukkan kredensial database yang salah dalam konfigurasi Anda.
”Basis data tidak dikenal”
Section titled “”Basis data tidak dikenal””Error: Unknown database 'xoops_db'Basis data yang ditentukan tidak ada di server MySQL.
File Konfigurasi
Section titled “File Konfigurasi”Lokasi Konfigurasi XOOPS
Section titled “Lokasi Konfigurasi XOOPS”File konfigurasi utama terletak di:
/mainfile.phpPengaturan basis data utama:
// 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_');Langkah Mengatasi Masalah
Section titled “Langkah Mengatasi Masalah”Langkah 1: Verifikasi Layanan MySQL Berjalan
Section titled “Langkah 1: Verifikasi Layanan MySQL Berjalan”Di Linux/Unix
Section titled “Di Linux/Unix”# Check if MySQL is runningsudo systemctl status mysql
# Start MySQL if not runningsudo systemctl start mysql
# Restart MySQLsudo systemctl restart mysqlLangkah 2: Uji Konektivitas MySQL
Section titled “Langkah 2: Uji Konektivitas MySQL”Menggunakan Baris Perintah
Section titled “Menggunakan Baris Perintah”# Test connection with credentialsmysql -h localhost -u xoops_user -p xoops_db
# If prompted for password, enter it# Success shows: mysql>
# Exit MySQLmysql> EXIT;Langkah 3: Verifikasi Kredensial Basis Data
Section titled “Langkah 3: Verifikasi Kredensial Basis Data”Periksa Konfigurasi XOOPS
Section titled “Periksa Konfigurasi XOOPS”// In mainfile.php, verify these constants:echo "Host: " . XOOPS_DB_HOST . "\n";echo "User: " . XOOPS_DB_USER . "\n";echo "Port: " . XOOPS_DB_PORT . "\n";echo "Database: " . XOOPS_DB_NAME . "\n";Langkah 4: Verifikasi Keberadaan Basis Data
Section titled “Langkah 4: Verifikasi Keberadaan Basis Data”# Connect to MySQLmysql -u root -p
# List all databasesSHOW DATABASES;
# Check for your databaseSHOW DATABASES LIKE 'xoops_db';
# If not found, create itCREATE DATABASE xoops_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# ExitEXIT;Langkah 5: Periksa Izin Pengguna
Section titled “Langkah 5: Periksa Izin Pengguna”# Connect as rootmysql -u root -p
# Check user privilegesSHOW GRANTS FOR 'xoops_user'@'localhost';
# Grant all privileges if neededGRANT ALL PRIVILEGES ON xoops_db.* TO 'xoops_user'@'localhost';
# Reload privilegesFLUSH PRIVILEGES;Masalah Umum dan Solusinya
Section titled “Masalah Umum dan Solusinya”Edisi 1: MySQL Tidak Berjalan
Section titled “Edisi 1: MySQL Tidak Berjalan”Gejala:
- Kesalahan koneksi ditolak
- Tidak dapat terhubung ke localhost
Solusi:
# Linux: Check and start MySQLsudo systemctl status mysqlsudo systemctl start mysqlMasalah 2: Kredensial Salah
Section titled “Masalah 2: Kredensial Salah”Gejala:
- Kesalahan “Akses ditolak”.
- “menggunakan kata sandi: YA” atau “menggunakan kata sandi: TIDAK”
Solusi:
# Reset password (as root)mysql -u root -p
# Change user passwordALTER USER 'xoops_user'@'localhost' IDENTIFIED BY 'new_password';
# Update mainfile.phpdefine('XOOPS_DB_PASS', 'new_password');Masalah 3: Basis Data Tidak Dibuat
Section titled “Masalah 3: Basis Data Tidak Dibuat”Gejala:
- Kesalahan “Basis data tidak dikenal”.
- Instalasi gagal pada pembuatan database
Solusi:
# Check if database existsmysql -u root -p -e "SHOW DATABASES;"
# Create database if missingmysql -u root -p -e "CREATE DATABASE xoops_db CHARACTER SET utf8mb4;"Skrip Diagnostik
Section titled “Skrip Diagnostik”Buat skrip diagnostik yang komprehensif:
<?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";?>Dokumentasi Terkait
Section titled “Dokumentasi Terkait”- Layar Putih Kematian - Pemecahan masalah umum WSOD
- ../../01-Getting-Started/Configuration/Performance-Optimization - Penyetelan kinerja basis data
- ../../06-Publisher-Module/User-Guide/Basic-Configuration - Penyiapan awal XOOPS
- ../../04-API-Reference/Database/XoopsDatabase - Referensi basis data API
Terakhir Diperbarui: 31-01-2026 Berlaku Untuk: XOOPS 2.5.7+ Versi PHP: 7.4+