هنگام نصب MySQL روی اوبونتو، بهخصوص در نسخههای جدیدتر، احتمالاً با یک مشکل رایج در اجرای اسکریپت امنیتی mysql_secure_installation مواجه میشوید. این اسکریپت برای امنسازی اولیه سرور پایگاه داده ضروری است، اما به دلیل تنظیمات پیشفرض احراز هویت، ممکن است با موفقیت اجرا نشود و روند کار را مختل کند.
چرا این مشکل رخ میدهد؟ (Auth_socket)
در نسخههای اخیر MySQL، کاربر root بهطور پیشفرض از پلاگین auth_socket برای احراز هویت استفاده میکند، نه روش سنتی رمز عبور.
-
نقش auth_socket: این پلاگین اجازه میدهد تا MySQL با استفاده از اعتبارنامههای سیستم عامل (Linux) احراز هویت کند. یعنی اگر کاربر سیستم عامل بتواند از طریق sudo به دیتابیس دسترسی پیدا کند، نیازی به وارد کردن رمز عبور داخلی MySQL نیست.
-
ناسازگاری: اسکریپت mysql_secure_installation برای تعامل و تنظیم رمز عبور جدید از طریق روشهای سنتی طراحی شده است. به همین دلیل، هنگام مواجهه با auth_socket دچار مشکل شده و از انجام وظایف امنیتی خود باز میماند.
راهحل گام به گام: تغییر پلاگین احراز هویت
برای اجرای موفقیتآمیز اسکریپت امنیتی، باید روش احراز هویت کاربر root را موقتاً به روش سازگار یعنی mysql_native_password تغییر دهید:
مرحله ۱: ورود به محیط MySQL بدون رمز عبور
با استفاده از sudo، بدون نیاز به وارد کردن رمز عبور MySQL وارد کنسول شوید:
مرحله ۲: تغییر پلاگین و تنظیم رمز عبور جدید
در خط فرمان MySQL، دستور زیر را اجرا کنید. نکته مهم: حتماً عبارت YourNewSecurePassword را با یک رمز عبور قوی و اختصاصی جایگزین کنید:
توضیح دستورات: این دستور دسترسی root را به روش mysql_native_password تغییر میدهد و همزمان یک رمز عبور مشخص (رمز عبور جدید شما) برای آن تنظیم میکند. FLUSH PRIVILEGES اعمال تغییرات را تضمین میکند.
مرحله ۳: اجرای اسکریپت امنیتی نهایی
اکنون میتوانید اسکریپت mysql_secure_installation را اجرا کرده و امنیت سرور خود را تکمیل کنید:
sudo mysql_secure_installationدر این مرحله، رمز عبوری که در مرحله ۲ تنظیم کردید را وارد کنید. سپس به سؤالات امنیتی اسکریپت (مانند حذف کاربران ناشناس، غیرفعال کردن لاگین ریموت root و حذف دیتابیس تستی) پاسخ دهید.
