خطای دسترسی دیتابیس (Access denied for user)
مشکل
اگر پس از ارتقای وبسایت خود با خطای زیر مواجه شدید، بدانید که در مسیر درستی هستید و این مشکل به سرعت قابل حل است.
SQLSTATE[HYXXX] [XXXX] Access denied for user 'user'@'host' (using password: YES)
توضیحات
در لاراول نسخه ۵.۸ به بالا، نحوه مدیریت فایل /.env تغییر کرده است. اکنون اگر بخواهید از کاراکتر # در مقادیر فایل
/.env استفاده کنید، باید آن مقدار را داخل کوتیشن ("") قرار دهید.
به احتمال زیاد، رمز عبور پایگاه داده شما شامل کاراکتر # است (که در نسخه جدید لاراول به عنوان کامنت در نظر گرفته میشود).
راهحل
این مشکل برای نصبهای جدید لاراکلاسیفایر (از نسخه ۶.۸ به بعد) برطرف شده است. اما برای حل سریع این مشکل در وبسایت خود، کافی است این رمز عبور را بین کوتیشن قرار دهید تا مشکل برطرف شود.
مثال: شما باید خط مربوط به رمز عبور پایگاه داده را در فایل /.env با قرار دادن مقدار رمز عبور در داخل کوتیشن، مانند
نمونههای زیر، تغییر دهید:
DB_PASSWORD=#aa9u6باید بهDB_PASSWORD="#aa9u6"تغییر کند.DB_PASSWORD=aa#9u6باید بهDB_PASSWORD="aa#9u6"تغییر کند.DB_PASSWORD=aa9u6#باید بهDB_PASSWORD="aa9u6#"تغییر کند.
توجه:
برای اطمینان از بهروزرسانی صحیح فایل /.env (بدون هیچ مشکلی)، توصیه میکنیم آن را مستقیماً از طریق یک نرمافزار FTP
ویرایش کنید (و نه از طریق cPanel).