چنانچه در حال مطالعه این مقاله هستید احتمالا پروژه لاراولی شما با خطای زیر مواجه است:
SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select * from `category` where `parent_id` = 0)
دلیل خطا
این خطا معمولا به دو علت یکی عدم معرفی اطلاعات صحیح دیتابیس به لاراول و یا وجود Cache روی می دهد.
نحوه رفع مشکل
بخش اول: چنانچه علت مشکل از دیتابیس باشد مراحل زیر را دنبال کنید:
1- ابتدا تنظیمات هاست را بررسی می کنیم. به عنوان مثال چنانچه از cPanel جهت مدیریت هاست استفاده می کنید، پس از لاگین به آن به بخش Databases > MySQL Database مراجعه و اطمینان حاصل کنید که دیتابیس در این بخش قرار داشته و نام کاربری و رمز عبور نیز به آن متصل شده است.
2- چنانچه از صحت کارکرد دیتابیس در هاست مطمین شدید، حال لازم است به پروژه لاراول مراجعه و فایل محتوی اطلاعات دیتابیس را بررسی کنید. این فایل بسته به نوع پروژه و عملکرد شما معمولا در یکی از مسیرهای زیر قرار دارد:
Public_html/config/database.php
Public_html/app/config/database.php
Public_html/.env
اطمنیان حاصل کنید نام سرور، نام دیتابیس، نام کاربری و رمز عبور دقیقا مشابه تنظیمات انجام شده در هاست باشد. چنانچه تناقضی وجود داشت اقدام به تصحیح اطلاعات کنید.
بخش دوم: اما چنانچه از وارد کردن اطلاعات صحیح دیتابیس اطمینان دارید، مراحل زیر را دنبال کنید:
در هاست لاراول به مسیر زیر از پروژه خود مراجعه و فایل config.php را به config_old.php تغییر نام دهید یا اصلا به طور کامل این فایل را حذف کنید:
bootstrap/cache
کار تمام شد!