Skip to content

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.

”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.

Error: Access denied for user 'xoops_user'@'localhost' (using password: YES)

Ini menunjukkan bukti kelayakan pangkalan data yang salah dalam konfigurasi anda.

Error: Unknown database 'xoops_db'

Pangkalan data yang ditentukan tidak wujud pada pelayan MySQL.

Fail konfigurasi utama terletak di:

/mainfile.php

Tetapan pangkalan data utama:

// Database Configuration
define('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 1: Sahkan Perkhidmatan MySQL Berjalan

Section titled “Langkah 1: Sahkan Perkhidmatan MySQL Berjalan”
Terminal window
# Check if MySQL is running
sudo systemctl status mysql
# Start MySQL if not running
sudo systemctl start mysql
# Restart MySQL
sudo systemctl restart mysql
Terminal window
# Test connection with credentials
mysql -h localhost -u xoops_user -p xoops_db
# If prompted for password, enter it
# Success shows: mysql>
# Exit MySQL
mysql> EXIT;

Langkah 3: Sahkan Bukti Kelayakan Pangkalan Data

Section titled “Langkah 3: Sahkan Bukti Kelayakan Pangkalan Data”
// 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";
Terminal window
# Connect to MySQL
mysql -u root -p
# List all databases
SHOW DATABASES;
# Check for your database
SHOW DATABASES LIKE 'xoops_db';
# If not found, create it
CREATE DATABASE xoops_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# Exit
EXIT;
Terminal window
# Connect as root
mysql -u root -p
# Check user privileges
SHOW GRANTS FOR 'xoops_user'@'localhost';
# Grant all privileges if needed
GRANT ALL PRIVILEGES ON xoops_db.* TO 'xoops_user'@'localhost';
# Reload privileges
FLUSH PRIVILEGES;

Simptom:

  • Ralat penolakan sambungan
  • Tidak dapat menyambung ke localhost

Penyelesaian:

Terminal window
# Linux: Check and start MySQL
sudo systemctl status mysql
sudo systemctl start mysql

Simptom:

  • Ralat “Akses ditolak”.
  • “menggunakan kata laluan: YES” atau “menggunakan kata laluan: TIDAK”

Penyelesaian:

Terminal window
# Reset password (as root)
mysql -u root -p
# Change user password
ALTER USER 'xoops_user'@'localhost' IDENTIFIED BY 'new_password';
# Update mainfile.php
define('XOOPS_DB_PASS', 'new_password');

Simptom:

  • Ralat “Pangkalan data tidak diketahui”.
  • Pemasangan gagal pada penciptaan pangkalan data

Penyelesaian:

Terminal window
# Check if database exists
mysql -u root -p -e "SHOW DATABASES;"
# Create database if missing
mysql -u root -p -e "CREATE DATABASE xoops_db CHARACTER SET utf8mb4;"

Buat skrip diagnostik yang komprehensif:

diagnose-db.php
<?php
echo "=== XOOPS Database Diagnostic ===\n\n";
// Check constants defined
echo "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 extension
echo "2. Extension Check:\n";
echo " MySQLi: " . (extension_loaded('mysqli') ? "YES" : "NO") . "\n\n";
// Test connection
echo "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";
?>
  • 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+