اگر تا به حال با خطای Error establishing a database connection در وردپرس مواجه شدهاید، میدانید که ساخت دیتابیس و تنظیم درست آن چقدر حیاتی است. تقریباً تمام وبسایتهای پویا — از فروشگاههای اینترنتی تا وبلاگهای شخصی — برای ذخیره محتوا، تنظیمات و اطلاعات کاربران به یک دیتابیس MySQL نیاز دارند. اما ساخت دیتابیس فقط کلیک روی یک دکمه نیست؛ باید کاربر مناسب بسازید، دسترسیها را دقیق تنظیم کنید و سپس اتصال را از سمت سایت برقرار کنید. در این مقاله قدمبهقدم یاد میگیرید که چطور این کار را بدون اشتباه انجام دهید.
پیشنیازهای ساخت دیتابیس
قبل از شروع، مطمئن شوید که به کنترلپنل هاست خود دسترسی دارید. بسته به شرکت هاستینگ، کنترلپنل میتواند cPanel، DirectAdmin یا پنل اختصاصی باشد. در تمام این پنلها، ابزار مدیریت دیتابیس معمولاً با نامهایی مثل MySQL Databases یا Database Manager پیدا میشود.
همچنین به اطلاعات زیر نیاز دارید:
- نام کاربری و رمز عبور اصلی کنترلپنل
- نام دامنه یا سابدامنهای که سایت روی آن اجرا میشود
- در صورت استفاده از وردپرس، نسخه PHP و MySQL مورد نیاز (معمولاً MySQL 5.7 یا 8.0)
نکته مهم: اگر سایت شما روی هاست اشتراکی است، معمولاً پیشوندی به نام کاربری هاست به نام دیتابیس اضافه میشود. مثلاً اگر نام کاربری شما srv_ali باشد، نام دیتابیس شما چیزی شبیه srv_ali_wp خواهد بود. این محدودیت امنیتی است و باید در تنظیمات بعدی به آن دقت کنید.
مراحل ساخت دیتابیس و کاربر در کنترلپنل
در این بخش فرض میکنیم از cPanel استفاده میکنید، اما مراحل در DirectAdmin و پنلهای اختصاصی بسیار مشابه است.
۱. ساخت دیتابیس جدید
- وارد کنترلپنل شوید و بخش MySQL Databases را باز کنید.
- در قسمت Create New Database، نام دلخواهی برای دیتابیس وارد کنید. بهتر است نامی مرتبط با پروژه باشد، مثلاً
shopیاblog. - روی دکمه Create Database کلیک کنید. پیام موفقیتآمیز بودن عملیات را مشاهده خواهید کرد.
نام کامل دیتابیس شما حالا چیزی شبیه srv_ali_shop است. این نام را یادداشت کنید؛ در مراحل بعد به آن نیاز دارید.
۲. ایجاد کاربر MySQL
حالا باید یک کاربر جداگانه برای اتصال به این دیتابیس بسازید. هرگز از کاربر اصلی هاست برای اتصال به دیتابیس استفاده نکنید؛ این کار یک اشتباه رایج امنیتی است.
- در همان صفحه، به بخش Add New User بروید.
- یک نام کاربری انتخاب کنید، مثلاً
shop_user. - یک رمز عبور قوی انتخاب کنید. از ترکیب حروف بزرگ و کوچک، اعداد و نمادها استفاده کنید. میتوانید از دکمه Generate Password کمک بگیرید.
- روی Create User کلیک کنید.
نام کامل کاربر شما هم با پیشوند هاست ساخته میشود، مثلاً srv_ali_shop_user. این نام و رمز عبور را در یک جای امن ذخیره کنید.
۳. تخصیص دسترسیها به کاربر
ساخت دیتابیس و کاربر به تنهایی کافی نیست؛ باید کاربر را به دیتابیس متصل کنید و سطح دسترسی او را مشخص کنید.
- در بخش Add User to Database، کاربر و دیتابیس ساختهشده را از منوهای کشویی انتخاب کنید.
- روی Add کلیک کنید.
- در صفحه بعد، لیستی از دسترسیها (Privileges) نمایش داده میشود. برای اکثر سایتها، گزینه ALL PRIVILEGES را انتخاب کنید. این گزینه شامل دسترسیهای SELECT، INSERT، UPDATE، DELETE و... میشود.
- روی Make Changes کلیک کنید.
اگر سایت شما فقط نیاز به خواندن داده دارد (مثلاً یک سایت نمایشی)، میتوانید فقط SELECT را انتخاب کنید. اما برای وردپرس و اغلب سیستمهای مدیریت محتوا، دسترسی کامل لازم است.
Access denied for user مواجه میشوند. اگر این خطا را دیدید، به بخش دسترسیها برگردید و مطمئن شوید کاربر به دیتابیس اضافه شده و دسترسی ALL PRIVILEGES دارد.
اتصال سایت به دیتابیس
حالا که دیتابیس و کاربر آماده است، باید سایت را به آن متصل کنید. روش اتصال بستگی به نوع سایت شما دارد.
اتصال در وردپرس
در وردپرس، فایل wp-config.php در ریشه سایت قرار دارد. مقادیر زیر را با اطلاعات خودتان جایگزین کنید:
define('DB_NAME', 'srv_ali_shop');
define('DB_USER', 'srv_ali_shop_user');
define('DB_PASSWORD', 'YourStrongPassword');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
مقدار DB_HOST معمولاً localhost است، اما در برخی هاستها ممکن است آدرس دیگری مثل mysql.servernet.ir باشد. این اطلاعات را از بخش راهنمای هاست خود پیدا کنید.
اتصال در PHP (سایت اختصاصی)
اگر سایت اختصاصی با PHP نوشتهاید، از کد زیر برای اتصال با PDO استفاده کنید:
<?php
$host = 'localhost';
$dbname = 'srv_ali_shop';
$user = 'srv_ali_shop_user';
$pass = 'YourStrongPassword';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "اتصال موفق بود";
} catch (PDOException $e) {
die("خطا در اتصال: " . $e->getMessage());
}
?>
استفاده از PDO به جای mysqli توصیه میشود چون امنیت بالاتری دارد و از کوئریهای آماده (Prepared Statements) پشتیبانی میکند.
تست اتصال و عیبیابی
بعد از تنظیمات، حتماً اتصال را تست کنید. سادهترین راه این است که یک فایل تست بسازید و آن را در مرورگر باز کنید.
- فایلی به نام
test_db.phpدر ریشه سایت بسازید. - کد اتصال PDO را در آن قرار دهید.
- فایل را از طریق مرورگر باز کنید. اگر پیام «اتصال موفق بود» را دیدید، همهچیز درست است.
- فایل تست را بلافاصله حذف کنید تا امنیت سایت حفظ شود.
خطاهای رایج و راهحلها
- خطای
Unknown database: نام دیتابیس را اشتباه وارد کردهاید. نام کامل با پیشوند هاست را بررسی کنید. - خطای
Access denied: رمز عبور اشتباه است یا کاربر به دیتابیس اضافه نشده. دسترسیها را دوباره بررسی کنید. - خطای
Connection refused: مقدارDB_HOSTاشتباه است. اگر از localhost استفاده میکنید و جواب نمیدهد، با پشتیبانی هاست تماس بگیرید. - خطای
Too many connections: اگر سایت شما ترافیک بالایی دارد، ممکن است به حداکثر تعداد اتصال همزمان رسیده باشید. این مشکل معمولاً با ارتقای پلن هاست یا بهینهسازی کوئریها حل میشود.
نکات امنیتی برای دیتابیس
بعد از ساخت دیتابیس و کاربر، چند اقدام امنیتی ساده اما مؤثر انجام دهید:
- از رمز عبور قوی استفاده کنید و آن را بهصورت دورهای تغییر دهید.
- هرگز از رمز عبور پیشفرض یا ساده مثل
123456استفاده نکنید. - اگر سایت شما فقط از یک دیتابیس استفاده میکند، کاربر را فقط به همان دیتابیس محدود کنید و دسترسی به دیتابیسهای دیگر ندهید.
- فایل
wp-config.phpرا از دسترس عموم خارج کنید. معمولاً هاستها این کار را بهصورت خودکار انجام میدهند، اما اگر مطمئن نیستید، یک فایل.htaccessدر همان مسیر بسازید و این خط را اضافه کنید:
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
همچنین اگر از phpMyAdmin استفاده میکنید، بعد از اتمام کار حتماً از حساب کاربری خود خارج شوید.
جمعبندی
ساخت دیتابیس و کاربر MySQL در کنترلپنل کار پیچیدهای نیست، اما نیاز به دقت دارد. با دنبال کردن مراحل این آموزش — ساخت دیتابیس، ایجاد کاربر، تخصیص دسترسیها و اتصال از سایت — میتوانید بدون خطا این کار را انجام دهید. مهمترین نکته این است که نامها و رمز عبور را دقیق یادداشت کنید و دسترسیها را بر اساس نیاز واقعی سایت تنظیم کنید. اگر در هر مرحله به مشکل برخوردید، ابتدا خطا را دقیق بخوانید و سپس راهحلهای ذکر شده در بخش عیبیابی را امتحان کنید. در نهایت، اگر هاست شما از سرویسهای مدیریتشده دیتابیس پشتیبانی میکند — مثل آنچه ServerNet در پلنهای هاستینگ خود ارائه میدهد — میتوانید از راهنمای رسمی همان سرویس نیز استفاده کنید تا مطمئنترین روش را دنبال کنید.
دیدگاهها ۰
هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید!