خطاهای اتصال پایگاه داده
خطاهای اتصال پایگاه داده یکی از رایج ترین مشکلات در نصب 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 پایگاه داده
آخرین به روز رسانی: ** 31-01-2026 ** برای: XOOPS 2.5.7+ اعمال می شود نسخه PHP: 7.4+