خطاهای Access Denied معمولاً زمانی رخ می‌دهند که سرور تشخیص می‌دهد که شما مجوز انجام عملیاتی که قصد انجام آن را دارید، ندارید. یکی از این شرایط زمانی است که میخواهید به سرور MySQL لاگین کنید. در این مقاله با نحوه رفع خطای ۱۰۴۵ در MySQL و دسترسی به فایل های پایگاه داده آشنا خواهید شد. نداشتن رمز عبور صحیح و مجوزهای لازم رایج ترین دلیلی است که سرور دسترسی شما را به پایگاه داده MySQL از طریق وردپرس، مجنتو و غیره مسدود می کند.

ممکن است هنگام اتصال از طریق زبان برنامه نویسی یا از طریق خط فرمان برای مشاهده داده ها از SQL Server با کد خطای MySQL 1045 مواجه شوید. بنابراین، وارد کردن نام کاربری و رمز عبور بدون اشتباه تایپی، بررسی مجدد مجوزهای کاربر و تأیید پورت از جمله مواردی است که باید رعایت کنید. امکان نامعتبر یا فراموش شدن اطلاعات احراز هویت را نیز باید بررسی کنید. در ادامه مقاله ۲ روش جهت حل این ارور را به شما خواهیم گفت تا زین پس به راحتی بتوانید این ارور را فیکس کنید.

هر آنچه باید در مورد خطای ناشناخته ۱۰۴۵ بدانید :

MySQL یکی از محبوب ترین سیستم های مدیریت پایگاه داده است. به عنوان مثال، محتوای یک وب سایت وردپرس را می توان با استفاده از MySQL مدیریت کرد. بنابراین، یکی از خطاهایی که ممکن است مدیران هنگام تلاش برای دسترسی به پایگاه داده MySQL از طریق وردپرس و یا دیگر سیستم ها با آن مواجه شوند، خطای ۱۰۴۵ در MySQL است که در زیر متن این ارور نوشته شده است.

error 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

همانطور که در این پیام خطا نشان داده شده است، شما مجاز به دسترسی به پایگاه داده در localhost نیستید. به عنوان مثال، ممکن است مجوزهای کافی نداشته باشید یا از یوزرنیم یا رمز عبور نادرست استفاده کنید.

دلایل اصلی مشاهده خطای ۱۰۴۵ در MySQL :

قبل از ارائه راه حل برای مشکل، توصیه می شود که علت اصلی مشکل را به طور کامل بررسی کنید تا از بروز چنین رفتاری در سیستم خود در آینده جلوگیری کنید. در زیر دلایل عدم دسترسی کاربر root به localhost و دریافت خطای ۱۰۴۵ (۲۸۰۰۰) ذکر شده است :

  • نام کاربری و رمز عبور اشتباه : شایع ترین علت دریافت این خطا، وارد کردن اطلاعات نادرست برای ورود به سیستم است. کاربران ممکن است هنگام اتصال به پایگاه داده نام کاربری و رمز عبور نادرست وارد کنند. بنابراین، SQL دسترسی مورد نیاز را نداده و در پاسخ این ارور را بر میگرداند.
  • دسترسی از میزبان اشتباه : برای بهبود امنیت، MySQL از کنترل دسترسی مبتنی بر میزبان برای کاربران استفاده می کند. به عبارت دیگر، MySQL دسترسی کاربر را به میزبان های فهرست شده در پایگاه داده کاربران MySQL محدود می کند. بنابراین، اگر سعی کنید از یک رایانه راه دور با نام میزبان نامشخص به mysql دسترسی پیدا کنید، این خطا نمایش داده می شود.
  • عدم وجود کاربر : زمانی که کاربر تلاش می کند به پایگاه داده ای دسترسی پیدا کند در حالی که در یوزرنیم وارد شده وجود ندارد، سرور خطا نمایش میدهد.
  • مجوزهای ناکافی : اگر مجوزهای لازم را ندارید، اجازه دسترسی به پایگاه داده MySQL را نخواهید داشت.
  • تداخل در Bash : بش می تواند نویسه های خاصی را در رمزهای عبور تغییر دهد. با این حال، برای جلوگیری از این مورد، می توانید رمز عبور را در یک نقل قول ( مثال : ‘password’ ) قرار دهید.
  • عدم داشتن گواهی SSL : دسترسی به پایگاه داده ممکن است به لایه سوکت امن (SSL) نیاز داشته باشد، اما ممکن است گواهینامه SSL معتبر نداشته باشید.

همه دلایل خطای فوق بهترین راه حل های خود را دارند. با ما همراه باشید تا نحوه رفع خطای شناسایی شده ۱۰۴۵ در MySQL را یاد بگیریم.

راه حل های رفع خطای ۱۰۴۵ در MySQL :

تا اینجا با خطای MySQL 1045 و دلایل احتمالی آن آشنا شدیم. بیایید بخش اصلی این آموزش را با هم پیش ببریم و ۲ روش مختلف برای رفع خطای MySQL 1045 را نیز بازگو کنیم.

راه حل اول : چک کردن دسترسی کاربر

عدم وجود مجوز های مورد نیاز برای کاربر “root” یکی از دلایل اصلی دریافت خطای MySQL 1045 است. بنابراین ابتدا باید وضعیت فعلی این مجوزها را چک کنید. ابتدا یک ترمینال باز کنید. اگر Mysql شما در یک سرور نصب شده است، ابتدا به سرور خود متصل شوید و در صورتی که Mysql در سیستم فعلی و لوکال شما نصب شده است، دستور زیر را وارد کنید.

mysql -u root -p

سپس برای اعطای تمام امتیازات، دستور زیر را تایپ کنید :

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';

استفاده از phpMyAdmin برای چک کردن دسترسی ها :

همچنین می توانید از phpMyAdmin برای چک کردن امتیازات کاربر استفاده کنید. برای چک کردن امتیازات، پس از ورود به phpmyadmin باید بر روی تب User Accounts در navbar بالای صفحه کلیک کنید.

راه حل دوم : چک کردن پورت MySQL

یک راه حل مناسب دیگر برای رفع خطای MySQL 1045 این است که چک کنیم که سرور در پورتی که ما وارد کرده ایم به سرویس MySQL گوش می دهد یا خیر. با این حال، ابتدا تأیید اینکه MySQL در حال اجرا است نیز مفید است.

ابتدا دستور زیر را برای بررسی وضعیت MySQL اجرا کنید :

systemtl status MySQL

در صورتی که مای‌اس‌کیوال در حال اجرا نیست و متوقف است، با استفاده از دستور زیر آن را روشن کنید :

systemtl start MySQL

اکنون می توانیم پورت mysql را چک کنیم و در صورت نیاز پورتی که هنگام اتصال ارسال کرده ایم را تغییر داده و به پورت صحیح متصل شویم.

ابتدا از طریق کامند زیر به مای‌اس‌کیو‌ال متصل شوید.

mysql -u username -p

پس از اجرای دستور بالا و اتصال به پایگاه داده، از کامند زیر جهت مشاهده پورتی که مای‌اس‌کیو‌ال به آن گوش میدهد استفاده کنید.

SHOW VARIABLES LIKE 'port'

پس از مشاهده پورت پیشفرض MySQL، پورت صحیح را یادداشت کرده و سپس اتصال خود را مجددا به MySQL با پورت جدید امتحان کنید.

سخن پایانی

در این مقاله متوجه شدیم که ارور ۱۰۴۵ در MySQL چیست و شایع ترین دلایل مشاهده این خطا چیست. همچنین ۲ راه حل جهت حل مشکل نیز توضیح داده شد. گاهی اوقات وابسته به هر دلیلی، دسترسی به پایگاه داده لوکال هاست برای Root ممنوع است. ابتدا ممکن است لازم باشد بررسی کنید که به پایگاه داده دسترسی دارید یا خیر. یکی از دلایل مشاهده این ارور، همانطور که گفته شد می تواند به سادگی استفاده از نام کاربری و رمز عبور نادرست باشد. از طرف دیگر، می‌توانید رمز عبور خود را ریست کنید یا مطمئن شوید که در حال اتصال به پورت درستی هستید. امیدواریم این مقاله نیز برای شما مفید واقع شده باشد. سوالات خود را در رابطه با این مقاله در بخش کامنت ها اعلام کنید، ما در اسرع وقت به سوالات شما پاسخ خواهیم داد.