ارور ورود به mysql در کالی

سلام
من کالی لینوکس نصب کردم
پیشفرض روش mysql نصب بود
الان میخوام لاگین کنم
ارور پسورد دارم

مشکل اینجاست که نمیخواد به یوزر شما (kali) اجازه بده که با root لاگین کنید.
اگه همین کامند رو با sudo اجرا کنید، بدون مشکل کار میکنه.
اگه با sudo لاگین کنید به mysql و یه یوزر درست کنید که به یه سری دیتابیس دسترسی داره، اونوقت با هرکدوم از یوزرهای سیستمتون میتونید به اون یوزر لاگین کنید.

قضیه اینه که ستاپ دیفالت mysql فقط به یوزر root سیستم شما اجازه میده که به یوزر root در mysql لاگین کنه. (لینوکس شما یه سری یوزر داره، mysql هم یه سری یوزر داره. اسمهاشون میتونه با هم یکی باشه. ربطی به هم ندارن اصلا!)

هم الآن و هم در آینده، اروری که میده رو میتونید توی اینترنت سرچ کنید و به راه‌حل برسید. مثلا من الآن سرچ کردم mysql error 1698 و به این رسیدم:

4 Likes

خب من لاگین شدم
الان چجوری یوزر بسازم که بتونم با یوزر kali به mysql کانکت بشم؟


اولین بارمه با mysql کار میکنم تو خط فرمان

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

use mysql;

بعد ببینید چه یوزرهایی از چه hostهایی با چه pluginی ست شدن:

SELECT User, Host, plugin FROM mysql.user;

احتمالا ستون plugin جلوی root خالی باشه. اگه خالی بود یا هرچیزی بجز mysql_native_password بود، باید تغییرش بدید:

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

بعد تغییرات رو ثبت کنید و خارج بشید:

FLUSH PRIVILEGES;
quit;

بعدش دیگه میتونید با mysql -u root -p بهش لاگین کنید.
اگه میخواید یه یوزر جدید بسازید هم توی همون جواب، بخش Option 2 گفته چیکار کنید. اینایی که تا اینجا گفتم Option 1 بود.
و اینم درجریان باشید که اگه pluginش رو روی auth_socket بذارید، مثل اکانت root میشه. یعنی باید حتما با همین یوزرنیمی که ست کردید بهش لاگین کنید.
یه مدل دیگه میگم:
لینوکس شما یه سری یوزر داره، mysql هم یه سری یوزر داره. اسم این یوزرها میتونه یکی باشه یا میتونه نباشه.
اگه یکی از یوزرهای mysql پلاگینش auth_socket باشه، باید حتما از یوزر لینوکسی که همون اسم رو داره بهش لاگین بشه.

1 Likes

ممنونم

خودش همین جلوش نوشته فک کردم حل شده ولی نه بازم نمیشه با اسکریپت Adminer یا یوزر دیگه بهش لاگین کرد

FLUS PRIVILEGES زدید؟ خیلی مهمه!
برای اطمینان بیشتر، یه بار با sudo systemctl restart mysql ریستارتش کنید.

بله زدم

اینم زدم یبار کلا سرور رو ریستارت هم کردم

آیا adminer رو روی یه سیستم دیگه ران میکنید؟ یا روی همون سیستمه و از طریق localhost به mariadb دسترسی پیدا میکنه؟
چون اگه از جای دیگه میخواید لاگین کنید باید Host روی % ست باشه.

MariaDB [mysql]> SELECT User, Host, plugin FROM mysql.user;
+------+------+-----------------------+
| User | Host | plugin                |
+------+------+-----------------------+
| root | %    | mysql_native_password |
+------+------+-----------------------+
1 row in set (0.002 sec)

البته پیشنهاد میکنم ۲ تا یوزر درست کنید. یکی Hostش localhost باشه یکی %. چون از دید mysql، % یعنی هرچیزی بجز localhost (هرچیزی بجز unix socket). پس باید هردوش ثبت بشه اگه از هردوجا قراره لاگین کنید.

بله روی همونه ولی بازم لاگین نمیشه
یه یوزر تو mysql ساختم به اون لاگین شد