كيفية إعادة ضبط كلمة سر المستخدم الخارق في قاعدة بيانات ماي إس كيو إل(MySQL) أو (MariaDB) ماريا دي بي

إعادة تعيين كلمة سر مستخدم الخارق على MySQL/MariaDB

نسيان كلمة السر الخاصة بك يحدث للجميع. إذا نسيت أو فقدت كلمة مرور قاعدة بيانات MySQL أو MariaDB. تحتاج فقط إلى وصول SSH إلى الخادم وحساب مستخدم جذري أو كلمة مرور مع امتيازات سودو للوصول إلى قاعدة البيانات وإعادة ضبطها.

يغطي هذا الدليل كيفية إعادة ضبط كلمة مرور الجذر لقاعدة بياناتك لكل من الإصدارات القديمة والأحدث من MySQL و MariaDB.

متطلبات

من أجل استعادة كلمة مرور MySQL/MariaDB، ستحتاج إلى الوصول إلى خادم Linux الذي يحتوي على MySQL أو MariaDB مع مستخدم سودو.

الخطوة 1 – تحديد نسخة قاعدة البيانات.

تأتي معظم توزيعات Linux الحديثة مع MySQL أو MariaDB (قاعدة بيانات بديلة شائعة متوافقة تمامًا مع MySQL). اعتمادًا على قاعدة البيانات المستخدمة وإصدارها، ستحتاج إلى استخدام أوامر مختلفة لاستعادة كلمة مرور سودو.

كيف تتحقق من إصدار MySQL أو MariaDB ؟

يجب استخدام الأمر التالي في سطر قيادة SSH:

$ mysql–version
Output:
mysqld Ver 5.7.27-0ubuntu0.18.04.1 for Linux on x86_64

أو مخرج مثل هذا لـ MariaDB:

mysqlVer 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

لاحظ قاعدة البيانات والنسخة التي لديك، كما ستستخدمها لاحقًا. ثم، يجب عليك إغلاق قاعدة البيانات من أجل الوصول إليها يدويًا.

الخطوة 2 – إيقاف خادم قاعدة البيانات

من أجل تغيير كلمة مرور سودو، يجب عليك أولاً إغلاق خادم قاعدة البيانات مسبقًا.

يمكنك القيام بذلك من أجل MySQL مع هذا الأمر:

$ sudo systemctl stop mysql

وبالنسبة لـ MariaDB مع:

$ sudo systemctl stop mariadb

بمجرد إغلاق خادم قاعدة البيانات، ستصل إليه يدويًا لإعادة ضبط كلمة مرور سودو.

الخطوة 3 – إعادة تشغيل خادم قاعدة البيانات

إذا قمت بتشغيل MySQL و MariaDB دون تحميل معلومات امتياز المستخدم، فسيسمح لك ذلك بالوصول إلى سطر أوامر قاعدة البيانات مع امتيازات سودو دون توفير كلمة المرور. سيسمح لك هذا بالوصول إلى قاعدة البيانات دون معرفة ذلك.

لإجراء هذه العملية، يجب عليك منع قاعدة البيانات من تحميل جداول الحقوق التي تحتوي على معلومات امتياز المستخدم. لأسباب تتعلق بالأمن والمخاطر، يجب عليك أيضًا تجاهل الشبكات من أجل منع العملاء الآخرين من الاتصال.

تشغيل قاعدة البيانات دون تحميل جداول الحقوق أو تمكين الشبكات مع هذا الأمر:

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

سيعمل رمز (&) في نهاية هذا الأمر على تشغيل هذه العملية في الخلفية حتى تتمكن من الاستمرار في استخدام طرفك.

يمكنك الآن تسجيل الدخول إلى قاعدة البيانات كمستخدم الخارق، والذي لا يطلب كلمة مرور.

$ mysql -u root

سترى على الفور نافذة الأوامر.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

MariaDB :

Tapez «aide»; ou '\ h' pour obtenir de l'aide. Tapez «\ c» pour effacer l'instruction d'entrée actuelle.
MariaDB [(aucun)]>

الخطوة 4 – تغيير كلمة مرور المستخدم الخارق

طريقة بسيطة لتغيير كلمة مرور المستخدم الخارق للإصدارات الحديثة من MySQL هي استخدام أمر ALTER USER. ومع ذلك، فإن هذا الأمر لن يعمل لأن جداول حقوق الوصول ليست محملة.

اطلب من خادم قاعدة البيانات إعادة تحميل جداول الحقوق عن طريق تنفيذ

mysql> FLUSH PRIVILEGES.

الآن يمكننا تغيير كلمة السر المستخدم الخارق.

بالنسبة إلى MySQL 5.7.6 الأحدث وكذلك MariaDB 10.1.20 والأحدث، استخدم الأمر التالي.

mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'new_password';

بالنسبة لإصدارات MySQL 5.7.5 والأقدم بالإضافة إلى MariaDB 10.1.20 والإصدارات القديمة، استخدم:

mysql> SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('new_password');

تأكد من استبدال new_password بكلمة المرور الجديدة التي تختارها

ملاحظة:

إذا لم يعمل أمر المستخدم ALTER، فعادة ما يشير إلى مشكلة أكبر. ومع ذلك، يمكنك تجربة UPDATE… تم ضبط كلمة مرور الجذر بدلاً من ذلك.

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';

بعد ذلك، لا تنسوا إعادة تحميل جداول الحقوق.

في كلتا الحالتين، يجب أن ترى التأكيد على أن الأمر قد تم تنفيذه بنجاح.

Output :
Query OK, 0 rows affected (0.00 sec)

تم تغيير كلمة المرور، بحيث يمكنك إيقاف اليدوي لخادم قاعدة البيانات وإعادة تشغيله كما كان من قبل.

الخطوة 5 – إعادة تشغيل خادم قاعدة البيانات

أولاً، أوقف حالة خادم قاعدة البيانات التي بدأتها يدويًا في الخطوة 3. يبحث هذا الأمر عن معرف PID أو معرف العملية (ID) أو MySQL أو MariaDB، ويرسل SIGTERM للتسبب في إنهائه بعد إجراء عمليات التنظيف. يمكنك معرفة المزيد في هذا البرنامج التعليمي لإدارة عملية Linux.

MySQL:
$ sudo kill 'cat /var/run/mysqld/mysqld.pid'
MariaDB:
$ sudo kill '/var/run/mariadb/mariadb.pid'

ثم إعادة تشغيل الخدمة باستخدام systemctl.

MySQL:
$ sudo systemctl start mysql
MariaDB:
$ sudo systemctl start mariadb

يمكنك الآن تأكيد أن كلمة المرور الجديدة قد تم تغييرها بشكل صحيح من خلال التشغيل:

$ mysql -u root–p

يجب أن يطلب الأمر كلمة السر المعينة حديثًا. أدخله، ويجب عليك الوصول إلى نافذة الأوامر كما هو متوقع.

خلاصة

لقد أعدت كلمة السر تأكد من أن كلمة المرور الجديدة التي تختارها قوية وآمنة وحافظ عليها آمنة.

LEAVE A COMMENT