Помилки підключення до бази даних
Помилки підключення до бази даних є одними з найпоширеніших проблем під час встановлення XOOPS. Цей посібник містить систематичні кроки з усунення несправностей для виявлення та вирішення проблем підключення.
Поширені повідомлення про помилки
Section titled “Поширені повідомлення про помилки””Не вдається підключитися до сервера MySQL”
Section titled “”Не вдається підключитися до сервера MySQL””Error: Can't connect to MySQL server on 'localhost' (111)Ця помилка зазвичай вказує на те, що сервер MySQL не працює або недоступний.
”Користувачу заборонено доступ”
Section titled “”Користувачу заборонено доступ””Error: Access denied for user 'xoops_user'@'localhost' (using password: YES)Це вказує на неправильні облікові дані бази даних у вашій конфігурації.
”Невідома база даних”
Section titled “”Невідома база даних””Error: Unknown database 'xoops_db'Зазначена база даних не існує на сервері MySQL.
Файли конфігурації
Section titled “Файли конфігурації”XOOPS Розташування конфігурації
Section titled “XOOPS Розташування конфігурації”Основний файл конфігурації знаходиться за адресою:
/mainfile.phpОсновні налаштування бази даних:
// 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_');Етапи усунення несправностей
Section titled “Етапи усунення несправностей”Крок 1. Переконайтеся, що служба MySQL запущена
Section titled “Крок 1. Переконайтеся, що служба MySQL запущена”На Linux/Unix
Section titled “На Linux/Unix”# Check if MySQL is runningsudo systemctl status mysql
# Start MySQL if not runningsudo systemctl start mysql
# Restart MySQLsudo systemctl restart mysqlКрок 2: Перевірте підключення MySQL
Section titled “Крок 2: Перевірте підключення MySQL”Використання командного рядка
Section titled “Використання командного рядка”# Test connection with credentialsmysql -h localhost -u xoops_user -p xoops_db
# If prompted for password, enter it# Success shows: mysql>
# Exit MySQLmysql> EXIT;Крок 3: Перевірте облікові дані бази даних
Section titled “Крок 3: Перевірте облікові дані бази даних”Перевірте конфігурацію XOOPS
Section titled “Перевірте конфігурацію 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";Крок 4: Перевірте існування бази даних
Section titled “Крок 4: Перевірте існування бази даних”# 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;Крок 5: Перевірте дозволи користувача
Section titled “Крок 5: Перевірте дозволи користувача”# 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;Поширені проблеми та рішення
Section titled “Поширені проблеми та рішення”Проблема 1: MySQL не працює
Section titled “Проблема 1: MySQL не працює”Симптоми:
- Помилка підключення відмовлено
- Не вдається підключитися до локального хосту
Рішення:
# Linux: Check and start MySQLsudo systemctl status mysqlsudo systemctl start mysqlПроблема 2: неправильні облікові дані
Section titled “Проблема 2: неправильні облікові дані”Симптоми:
- Помилка “Доступ заборонено”.
- «за допомогою пароля: ТАК» або «за допомогою пароля: НІ»
Рішення:
# 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');Проблема 3: База даних не створена
Section titled “Проблема 3: База даних не створена”Симптоми:
- Помилка «Невідома база даних».
- Помилка встановлення під час створення бази даних
Рішення:
# 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;"Діагностичний скрипт
Section titled “Діагностичний скрипт”Створіть повний діагностичний сценарій:
<?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";?>Пов’язана документація
Section titled “Пов’язана документація”- White-Screen-of-Death - загальне усунення несправностей WSOD
- ../../01-Getting-Started/Configuration/Performance-Optimization - Налаштування продуктивності бази даних
- ../../06-Publisher-Module/User-Guide/Basic-Configuration - Початкове налаштування XOOPS
- ../../04-API-Reference/Database/XoopsDatabase - Посилання на базу даних API
Останнє оновлення: 2026-01-31 Стосується: XOOPS 2.5.7+ PHP Версії: 7.4+