خطای Access denied for user در دایرکت ادمین
خطای Error connecting to MySQL: Access denied for user: ‘da_admin@localhost’ (Using password: YES) هنگامی در صفحه دایرکت ادمین دیده میشود که دیتابیس da_admin به درستی تنظیم نشده باشد .در ادامه به حل این مشکل میپردازیم .
اگر رمز روت سرور خود را به یاد دارید گام اول را انجام ندهید ولی اگر رمز روت خود را فراموش کرده اید، از دستورات زیر برای تغییر رمز روت mysql در دایرکت ادمین استفاده کنید. همچنین توجه داشته باشید ممکن است رمز روت mysql در فایل /usr/local/directadmin/scripts/setup.txt موجود باشد. رمز روت در قسمت “mysql=” وجود دارد. البته در صورتی این فایل وجود دارد که آن را حذف نکرده باشید. است. اگر این فایل را پیدا نمی کنید باید mysql شما –skip-grant-tables ری استارت شود. این مورد در گام اول توضیح داده شده است (این برای Redhat/CentOS است)
مرحله ۱ : تغییر رمز روت mysql در دایرکت ادمین :
نکته : تمام دستور های زیر را به صورت جداگانه وارد نمایید .
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
سپس دستورات زیر را برای تغییر رمز root سرویس mysql در دایرکت ادمین وارد کنید. در صورت وجود خطا در خط اول به جای use mysql از mysql استفاده کنید.
use mysql UPDATE mysql.user SET password=PASSWORD('newpass') WHERE user='root'; FLUSH PRIVILEGES; quit
به جای newpass باید رمز جدید root مای اسکیو ال را وارد کنید. این رمز را برای انجام دادن گام های بعدی به خاطر بسپارید.
اکنون رمز روت mysql دایرکت ادمین شما ریست شده است.
دستور زیر را برای غیر فعال کردن mysql وارد کنید :
killall -9 mysqld_safe; killall -9 mysqld
و با دستور زیر مجدد سرویس mysqld را start کنید :
/etc/init.d/mysqld start
مرحله ۲ : تغییر رمز mysql دیتابیس da_admin با استفاده از رمز روت mysql :
دستور زیر را وارد کنید
mysql -uroot -p
پس از وارد کردن این دستور از شما رمز root سرویس Mysql درخواست می شود.
سپس با دستورات زیر می توانید رمز دیتایس da_admin را تغییر دهید.
GRANT ALL PRIVILEGES ON *.* TO da_admin@localhost IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES; quit
به جای password باید رمز جدید برای این دیتابیس انتخاب کنید و آن را برای گام بعدی به خاطر بسپارید .
اکنون رمز دیتابیس da_admin تغییر کرده است و شما باید آن را وارد فایل mysql.conf کنید.
مرحله ۳ : وارد کردن رمز جدید دیتابیس da_admin در فایل /usr/local/directadmin/conf/mysql.conf
دستور زیر را برای ویرایش این فایل وارد کنید :
nano /usr/local/directadmin/conf/mysql.conf
در صورتی که nano روی سرویس شما نصب نبود از دستور زیر استفاده کنید :
yum install nano
سپس مانند کد زیر رمز جدید را وارد کنید.
user=da_admin passwd=newdapass
به جای newdapass باید رمز جدید دیتابیس da_admin وارد شود.
سپس صفحه دایرکت ادمین خود را مجدد تست کنید.
در برخی از سیستم ها فایل /root/.my.cnf وجود دارد که رمز عبور از پیش تعیین شده دارد. این فایل مقدار تنظیم شده را زیر پا می گذارد. اگر شما یک خطای این چنینی در هنگام ایجاد یا بازگردانی دریافت کردید سعی کنید نام این فایل را تغییر دهید و یا آن را حذف کنید. توجه داشته باشید منظور فایل /etc/my.cnf نیست و این یک فایل ضروری برای mysql شما است.