Lỗi kết nối cơ sở dữ liệu
Lỗi kết nối cơ sở dữ liệu là một trong những sự cố phổ biến nhất trong quá trình cài đặt XOOPS. Hướng dẫn này cung cấp các bước khắc phục sự cố có hệ thống để xác định và giải quyết các sự cố kết nối.
Thông báo lỗi thường gặp
Phần tiêu đề “Thông báo lỗi thường gặp””Không thể kết nối với máy chủ MySQL”
Phần tiêu đề “”Không thể kết nối với máy chủ MySQL””Error: Can't connect to MySQL server on 'localhost' (111)Lỗi này thường cho biết máy chủ MySQL không chạy hoặc không thể truy cập được.
”Quyền truy cập của người dùng bị từ chối”
Phần tiêu đề “”Quyền truy cập của người dùng bị từ chối””Error: Access denied for user 'xoops_user'@'localhost' (using password: YES)Điều này cho thấy thông tin xác thực cơ sở dữ liệu không chính xác trong cấu hình của bạn.
”Cơ sở dữ liệu không xác định”
Phần tiêu đề “”Cơ sở dữ liệu không xác định””Error: Unknown database 'xoops_db'Cơ sở dữ liệu được chỉ định không tồn tại trên máy chủ MySQL.
Tệp cấu hình
Phần tiêu đề “Tệp cấu hình”Vị trí cấu hình XOOPS
Phần tiêu đề “Vị trí cấu hình XOOPS”Tệp cấu hình chính được đặt tại:
/mainfile.phpCài đặt cơ sở dữ liệu chính:
// 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_');Các bước khắc phục sự cố
Phần tiêu đề “Các bước khắc phục sự cố”Bước 1: Xác minh Dịch vụ MySQL đang chạy
Phần tiêu đề “Bước 1: Xác minh Dịch vụ MySQL đang chạy”Trên Linux/Unix
Phần tiêu đề “Trên Linux/Unix”# Check if MySQL is runningsudo systemctl status mysql
# Start MySQL if not runningsudo systemctl start mysql
# Restart MySQLsudo systemctl restart mysqlBước 2: Kiểm tra kết nối MySQL
Phần tiêu đề “Bước 2: Kiểm tra kết nối MySQL”Sử dụng dòng lệnh
Phần tiêu đề “Sử dụng dòng lệnh”# Test connection with credentialsmysql -h localhost -u xoops_user -p xoops_db
# If prompted for password, enter it# Success shows: mysql>
# Exit MySQLmysql> EXIT;Bước 3: Xác minh thông tin xác thực cơ sở dữ liệu
Phần tiêu đề “Bước 3: Xác minh thông tin xác thực cơ sở dữ liệu”Kiểm tra cấu hình XOOPS
Phần tiêu đề “Kiểm tra cấu hình 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";Bước 4: Xác minh sự tồn tại của cơ sở dữ liệu
Phần tiêu đề “Bước 4: Xác minh sự tồn tại của cơ sở dữ liệu”# 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;Bước 5: Kiểm tra quyền của người dùng
Phần tiêu đề “Bước 5: Kiểm tra quyền của người dùng”# 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;Các vấn đề thường gặp và giải pháp
Phần tiêu đề “Các vấn đề thường gặp và giải pháp”Vấn đề 1: MySQL Không chạy
Phần tiêu đề “Vấn đề 1: MySQL Không chạy”Triệu chứng:
- Lỗi từ chối kết nối
- Không thể kết nối với localhost
Giải pháp:
# Linux: Check and start MySQLsudo systemctl status mysqlsudo systemctl start mysqlVấn đề 2: Thông tin xác thực không chính xác
Phần tiêu đề “Vấn đề 2: Thông tin xác thực không chính xác”Triệu chứng:
- Lỗi “Truy cập bị từ chối”
- “sử dụng mật khẩu: CÓ” hoặc “sử dụng mật khẩu: KHÔNG”
Giải pháp:
# 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');Vấn đề 3: Cơ sở dữ liệu chưa được tạo
Phần tiêu đề “Vấn đề 3: Cơ sở dữ liệu chưa được tạo”Triệu chứng:
- Lỗi “Cơ sở dữ liệu không xác định”
- Cài đặt không thành công khi tạo cơ sở dữ liệu
Giải pháp:
# 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;"Tập lệnh chẩn đoán
Phần tiêu đề “Tập lệnh chẩn đoán”Tạo tập lệnh chẩn đoán toàn diện:
<?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";?>Tài liệu liên quan
Phần tiêu đề “Tài liệu liên quan”- Màn hình trắng chết chóc - Khắc phục sự cố WSOD thường gặp
- ../../01-Bắt đầu/Cấu hình/Tối ưu hóa hiệu suất - Điều chỉnh hiệu suất cơ sở dữ liệu
- ../../06-Publisher-Module/User-Guide/Basic-Configuration - Thiết lập XOOPS ban đầu
- ../../04-API-Reference/Database/XoopsDatabase - Cơ sở dữ liệu tham chiếu API
Cập nhật lần cuối: 2026-01-31 Áp dụng cho: XOOPS 2.5.7+ Phiên bản PHP: 7.4+