در این مقاله، بهصورت گام به گام یاد میگیریم چگونه این خطا را تحلیل و برطرف کنیم تا ارتباط با MySQL بدون مشکل برقرار شود. پس تا انتها همراه ما باشید.
آنچه در این مقاله میخوانید:
چرا خطای Access denied for user رخ میدهد؟
این خطا از خطاهای احراز هویت (Authentication Error) در MySQL است. زمانیکه MySQL نتواند کاربر (مانند da_admin) را شناسایی کند یا رمز عبور اشتباه باشد، اتصال را رد میکند.
در این حالت، معمولا با پیغام خطای زیر روبهرو میشوید:
Error connecting to MySQL: Access denied for user 'da_admin'@'localhost'
- رمز عبور کاربر در فایل پیکربندی اشتباه است.
- کاربر تعریف شده در MySQL وجود ندارد.
- کاربر از میزبان (Host) نادرستی تلاش به اتصال دارد.
- سطح دسترسی کاربر به دیتابیس حذف شده است.
- تنظیمات امنیتی یا فایروال مانع اتصال میشود.
1- بررسی ریشهای خطا Error connecting to MySQL: Access denied for user
قبل از هرگونه تغییر یا اقدام اصلاحی، باید منشا اصلی خطا را شناسایی کنید. با مشاهده دقیق پیام خطا در محیطهای مختلف و تحلیل لاگهای MySQL میتوانیدمتوجه شوید که مشکل از رمز عبور، سطح دسترسی، یا میزبان اتصال است. این مرحله پایهای ترین گام برای رفع کامل خطای Access denied for user محسوب میشود.
مشاهده پیام خطا در محیطهای مختلف
این خطا ممکن است در محیطهای زیر ظاهر شود:
- هنگام ورود به phpMyAdmin
- اتصال وردپرس یا جوملا به دیتابیس
- اجرای دستورات در SSH یا MySQL CLI
- استفاده از اسکریپتهای PHP مانند mysqli_connect()
بررسی لاگهای MySQL
پیش از هر اقدامی، باید بدانیم مشکل از کجاست. برای این کار میتوانید وارد سرور شوید و لاگ MySQL را بررسی کنید. می توانید این کار را از طریق دستور زیر انجام دهید.
sudo cat /var/log/mysql/error.log در این مرحله باید موارد زیر را بررسی کنید:
- آیا نام کاربری (da_admin) درست وارد شده است؟
- رمز عبور در فایلهای پیکربندی مانند wp-config.php با MySQL همخوانی دارد؟
- آیا کاربر از localhost به MySQL متصل میشود یا از IP دیگر؟
- آیا کاربر مجاز به دسترسی به دیتابیس موردنظر است؟
2. رفع خطای دسترسی دیتابیس از طریق کنترل پنل (cPanel و DirectAdmin)
در کنترل پنلهایی مانند cPanel و DirectAdmin میتوان بهراحتی کاربر و رمز عبور را اصلاح کرد.
تغییر رمز عبور کاربر دیتابیس
- وارد کنترل پنل شوید.
- از بخش MySQL Databases، کاربر مربوطه (da_admin)را انتخاب کنید.
- گزینه Change Password را بزنید و رمز جدیدی انتخاب کنید.
- رمز جدید را در فایل پیکربندی وبسایت خود (مثلا در وردپرس wp-config.php) وارد نمایید:
define('DB_USER', 'da_admin');
define('DB_PASSWORD', 'new_password'); بررسی و اعطای مجدد دسترسیها (Privileges)
اگر رمز عبور درست است اما هنوز خطا دریافت میکنید، این احتمال وجود دارد که دسترسی کاربر حذف شده باشند. برای حل این مشکل مراحل زیر را انجام دهید.
- وارد phpMyAdmin شوید.
- از منوی سمت چپ، گزینه Privileges را انتخاب کنید.
- روی کاربر موردنظر کلیک کرده.
- با انتخاب دیتابیس مربوطه، تیک گزینه ALL PRIVILEGES را فعال کنید.
- در انتها تغییرات را ذخیره کنید.
3. رفع خطا عدم دسترسی به MySQL در سرور
اگر دسترسی مدیریتی (Root) به سرور دارید، میتوانید از طریق خط فرمان برای رفع خطا استفاده کنید.
تغییر رمز عبور کاربر Root در MySQL
sudo mysqladmin -u root -p password 'new_password' sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql -u root ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES; --skip-grant-tables &
mysql -u root ایجاد کاربر جدید با دسترسی کامل
اگر کاربر da_admin حذف شده یا به هر دلیلی مشکل پیدا کرده است، می توانید با استفاده از دستور زیر کاربر جدید ایجاد کنید. البته این روش مخصوص مدیران سرور و توسعهدهندگانی است که به SSH دسترسی دارند.
CREATE USER 'da_admin'@'localhost' IDENTIFIED BY 'new_password';
GRANT ALL PRIVILEGES ON database_name.* TO 'da_admin'@'localhost';
FLUSH PRIVILEGES; 4. بررسی تنظیمات Localhost و دسترسی از راه دور
در MySQL، میزبان (Host) بخش مهمی از شناسایی کاربر است. یعنی هر کاربر با ترکیب «نام کاربری + میزبان» شناخته میشود.
بنابراین da_admin@localhost با [email protected] دو کاربر متفاوت هستند.
اگر برنامه یا اسکریپت شما روی سرور دیگری اجرا می شود، باید دسترسی از راه دور را فعال کنید. برای این کار دستور زیر را اجرا کنید.
GRANT ALL PRIVILEGES ON database_name.* TO 'da_admin'@'%' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES; sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf bind-address = 0.0.0.0
نکات فنی خطای Access denied for user در سرورها
برای جلوگیری از بروز مجدد خطای اتصال دیتابیس cPanel یا دایرکت ادمین، توصیه های فنی زیر را جدی بگیرید.
- رمزهای عبور ساده را هرگز استفاده نکنید. از ترکیب حروف بزرگ، کوچک و نمادها استفاده کنید.
- در سرورهایی با دسترسی از راه دور، پورت 3306 را برای IPهای خاص محدود کنید
- از نسخههای جدید MySQL 8.x استفاده کنید؛ زیرا در سال 2025 الگوریتمهای رمزنگاری بهروزرسانی شدهاند.
- پس از هر تغییر، حتما سرویس را ریستارت کنید. از دستور” sudo systemctl restart mysql ” استفاده کنید
بر اساس مستندات رسمی Oracle MySQL (2025)، استفاده از پلاگین caching_sha2_password بهجای mysql_native_password توصیه شده است.
جمع بندی ؛ مشکل یوزر da_admin
1- از رمزهای قوی و یکتا استفاده کنید.
2- بهصورت منظم کاربران غیر ضروری را حذف کنید.
3- از ابزارهای مدیریتی مانند phpMyAdmin یا MySQL CLI برای کنترل دسترسیها استفاده کنید.
برای اطمینان از عملکرد پایدار دیتابیس، پیشنهادما استفاده از سرور مجازی لینوکس استفاده کنید تا کنترل کامل بر MySQL و فایلهای تنظیماتی داشته باشید. امیدوارم این مقاله آموزشی از بلاگ وب داده نیز برای شما مفید باشد.
سوالات متداول درباره خطای Error connecting to MySQL
در DirectAdmin چطور کاربر را به دیتابیس متصل کنم؟
از بخش MySQL Management کاربر را انتخاب کرده و از قسمت Link User to Database دیتابیس مربوطه را وصل کنید.
خطای Access denied for user در cPanel چطور رفع میشود؟
آیا ممکن است خطا Error connecting to MySQL: Access denied for user: ‘da_admin@localhostبه فایروال مربوط باشد؟
منابع و رفرنس ها:
- Oracle MySQL Documentation, 2025 Edition
- cPanel MySQL Management Guide, 2024
- DirectAdmin Database Troubleshooting, 2024




