Ralat Sambungan Pangkalan Data
Ralat sambungan pangkalan data adalah antara isu yang paling biasa dalam XOOPS pemasangan. Panduan ini menyediakan langkah penyelesaian masalah yang sistematik untuk mengenal pasti dan menyelesaikan masalah sambungan.
Mesej Ralat Biasa
Section titled “Mesej Ralat Biasa””Tidak dapat menyambung ke pelayan MySQL”
Section titled “”Tidak dapat menyambung ke pelayan MySQL””Error: Can't connect to MySQL server on 'localhost' (111)Ralat ini biasanya menunjukkan pelayan MySQL tidak berjalan atau tidak boleh diakses.
”Akses ditolak untuk pengguna”
Section titled “”Akses ditolak untuk pengguna””Error: Access denied for user 'xoops_user'@'localhost' (using password: YES)Ini menunjukkan bukti kelayakan pangkalan data yang salah dalam konfigurasi anda.
”Pangkalan data tidak diketahui”
Section titled “”Pangkalan data tidak diketahui””Error: Unknown database 'xoops_db'Pangkalan data yang ditentukan tidak wujud pada pelayan MySQL.
Fail Konfigurasi
Section titled “Fail Konfigurasi”XOOPS Lokasi Konfigurasi
Section titled “XOOPS Lokasi Konfigurasi”Fail konfigurasi utama terletak di:
/mainfile.phpTetapan pangkalan 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 Penyelesaian Masalah
Section titled “Langkah Penyelesaian Masalah”Langkah 1: Sahkan Perkhidmatan MySQL Berjalan
Section titled “Langkah 1: Sahkan Perkhidmatan MySQL Berjalan”Pada Linux/Unix
Section titled “Pada 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 Kesambungan MySQL
Section titled “Langkah 2: Uji Kesambungan 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: Sahkan Bukti Kelayakan Pangkalan Data
Section titled “Langkah 3: Sahkan Bukti Kelayakan Pangkalan Data”Semak XOOPS Konfigurasi
Section titled “Semak XOOPS Konfigurasi”// 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: Sahkan Pangkalan Data Wujud
Section titled “Langkah 4: Sahkan Pangkalan Data Wujud”# 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: Semak Kebenaran Pengguna
Section titled “Langkah 5: Semak Kebenaran 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;Isu dan Penyelesaian Biasa
Section titled “Isu dan Penyelesaian Biasa”Isu 1: MySQL Tidak Berjalan
Section titled “Isu 1: MySQL Tidak Berjalan”Simptom:
- Ralat penolakan sambungan
- Tidak dapat menyambung ke localhost
Penyelesaian:
# Linux: Check and start MySQLsudo systemctl status mysqlsudo systemctl start mysqlIsu 2: Bukti Kelayakan Salah
Section titled “Isu 2: Bukti Kelayakan Salah”Simptom:
- Ralat “Akses ditolak”.
- “menggunakan kata laluan: YES” atau “menggunakan kata laluan: TIDAK”
Penyelesaian:
# 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');Isu 3: Pangkalan Data Tidak Dicipta
Section titled “Isu 3: Pangkalan Data Tidak Dicipta”Simptom:
- Ralat “Pangkalan data tidak diketahui”.
- Pemasangan gagal pada penciptaan pangkalan data
Penyelesaian:
# 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 Berkaitan
Section titled “Dokumentasi Berkaitan”- Skrin Kematian Putih - Penyelesaian masalah WSOD biasa
- ../../01-Getting-Started/Configuration/Performance-Optimization - Penalaan prestasi pangkalan data
- ../../06-Publisher-Module/User-Guide/Basic-Configuration - Persediaan awal XOOPS
- ../../04-API-Reference/Database/XoopsDatabase - Rujukan Pangkalan Data API
Terakhir Dikemaskini: 2026-01-31 Terpakai Kepada: XOOPS 2.5.7+ PHP Versi: 7.4+