راهنمای ریست کردن پسورد root در MySQL و MariaDB
فراموش کردن رمز عبور root برای دیتابیس MySQL یا MariaDB یکی از مشکلاتی است که میتواند هر مدیر سروری را با چالش مواجه کند. کاربر root در دیتابیس، بالاترین سطح دسترسی را دارد و بدون رمز آن، مدیریت کاربران و پایگاههای داده غیرممکن میشود. خوشبختانه، فرآیند بازیابی رمز mysql و تنظیم مجدد آن با داشتن دسترسی به سرور، بسیار ساده است.
این راهنما به شما روش صحیح و امن برای تغییر پسورد mysql را روی تمام توزیعهای مدرن لینوکس آموزش میدهد. برای انجام این مراحل، شما به دسترسی کامل SSH به سرور نیاز دارید که با خرید vps این امکان برای شما فراهم میشود.
پیشنیازها
- یک سرور لینوکس (مانند اوبونتو، دبیان، AlmaLinux و…).
- دسترسی به سرور با کاربر root یا یک کاربر با دسترسی
sudo
.
قدم اول: متوقف کردن سرویس دیتابیس
اولین قدم، متوقف کردن کامل سرویس MySQL یا MariaDB است تا بتوانیم آن را در یک حالت خاص و بدون نیاز به رمز عبور راهاندازی کنیم.
# برای MariaDB
sudo systemctl stop mariadb
# برای MySQL
sudo systemctl stop mysql
قدم دوم: راهاندازی مجدد در حالت Safe Mode (بدون بررسی دسترسیها)
حالا ما سرویس را با یک فلگ خاص به نام --skip-grant-tables
اجرا میکنیم. این فلگ به دیتابیس میگوید که بدون بررسی جدولهای دسترسی و نیاز به رمز عبور، راهاندازی شود.
sudo mysqld_safe --skip-grant-tables --skip-networking &
توضیح دستور:
--skip-networking
: برای افزایش امنیت در این مرحله، از پاسخگویی دیتابیس به اتصالات شبکه جلوگیری میکند.&
: این علامت، دستور را در پسزمینه (background) اجرا میکند تا ترمینال شما برای اجرای دستورات بعدی آزاد باشد.
قدم سوم: ورود به دیتابیس و تغییر رمز عبور
حالا که دیتابیس بدون نیاز به رمز در حال اجراست، به راحتی میتوانیم به آن وارد شده و رمز را تغییر دهیم.
- وارد محیط mysql shell شوید:
sudo mysql -u root
- دستور زیر را برای بارگذاری مجدد دسترسیها اجرا کنید. این کار برای اجرای دستور تغییر رمز ضروری است.
FLUSH PRIVILEGES;
- حالا با استفاده از دستور
ALTER USER
، رمز عبور کاربر root را تغییر دهید. فراموش نکنید که'new_strong_password'
را با رمز عبور قوی جدید خود جایگزین کنید.ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_password';
نکته مهم: روش قدیمی استفاده از
UPDATE ... SET Password=PASSWORD(...)
در نسخههای جدید MySQL و MariaDB منسوخ شده و کار نمیکند. روش صحیح استفاده ازALTER USER
است. - از محیط mysql shell خارج شوید:
EXIT;
قدم چهارم: توقف حالت Safe Mode و راهاندازی مجدد سرویس
حالا باید فرآیند ناامنی که در پسزمینه در حال اجراست را متوقف کرده و سرویس دیتابیس را به حالت عادی برگردانیم.
- با دستور زیر، فرآیند
mysqld_safe
را پیدا کرده و آن را متوقف کنید:sudo kill `cat /var/run/mysqld/mysqld.pid`
(مسیر فایل .pid ممکن است در برخی سیستمها متفاوت باشد).
- در نهایت، سرویس دیتابیس را به صورت عادی و امن راهاندازی کنید:
# برای MariaDB sudo systemctl start mariadb # برای MySQL sudo systemctl start mysql
اکنون رمز عبور root دیتابیس شما با موفقیت تغییر کرده است و میتوانید با رمز جدید به آن متصل شوید. این فرآیند یکی از مهارتهای کلیدی در مدیریت یک خرید سرور مجازی است.
فهرست تیترها