وب، دیتابیس و اجرا8 دقیقه

آموزش نصب MySQL

MySQL را از منبع بسته معتبر نصب کنید، روش احراز هویت root را بشناسید و دسترسی شبکه را به نیاز واقعی محدود کنید.

#اوبونتو#امنیت#دیتابیس
تیم فنی هاستیفای
01

این راهنما چه نتیجه‌ای می‌دهد؟

MySQL را از منبع بسته معتبر نصب کنید، روش احراز هویت root را بشناسید و دسترسی شبکه را به نیاز واقعی محدود کنید.

در Ubuntu ممکن است root دیتابیس با auth_socket وارد شود. برنامه باید کاربر جدا با Database و مجوز حداقلی داشته باشد؛ اتصال عمومی root هرگز طراحی مناسبی نیست.

02

قبل از شروع

نسخه سیستم‌عامل و معماری CPU را ثبت کنید، از داده و فایل تنظیمات فعلی نسخه پشتیبان بگیرید و مطمئن شوید یک مسیر بازیابی مانند Console ارائه‌دهنده دارید. اگر سرور Production است، زمان تغییر، مسئول اجرا، معیار موفقیت و روش بازگشت را پیش از اولین فرمان مشخص کنید.

فرمان‌های این مقاله برای یک محیط متداول نوشته شده‌اند، اما نسخه بسته‌ها و مسیر فایل‌ها ممکن است بین نسخه‌های Ubuntu یا توزیع‌های دیگر فرق کند. مستندات رسمی نسخه نصب‌شده را مرجع نهایی بدانید و فرمانی را که اثرش را نمی‌دانید مستقیماً روی Production اجرا نکنید.

03

پیش‌نیازها و کنترل دسترسی

با یک کاربر شخصی دارای sudo کار کنید، ساعت سیستم و DNS را بررسی کنید و فضای آزاد دیسک و حافظه را بسنجید. اگر نصب یک سرویس شبکه‌ای است، از قبل مشخص کنید کدام مبدأ باید به کدام پورت دسترسی داشته باشد؛ نصب موفق با سرویس عمومی و بدون Firewall، نتیجه امنی نیست.

  • برای برنامه کاربر و Schema جدا بسازید.
  • bind-address و فایروال را هماهنگ کنید.
  • قبل از Tuning، Slow query و workload را اندازه بگیرید.
04

مراحل اجرا

سرویس را نصب و فعال کنید، وضعیت را ببینید و سپس با حساب مدیریتی محلی Database و کاربر برنامه را بسازید. Backup و Restore آزمایشی را همان ابتدا تعریف کنید.

فرمان‌ها را به‌ترتیب اجرا کنید و خروجی هر مرحله را بخوانید. اگر Package manager، Service manager یا ابزار اعتبارسنجی خطا داد، به مرحله بعد نروید. توقف در همان نقطه، عیب‌یابی را بسیار ساده‌تر از ادامه‌دادن با یک نصب نیمه‌کاره می‌کند.

SQL
sudo apt update && sudo apt install mysql-serversudo systemctl enable --now mysqlsudo mysqlsudo ss -lntp | grep 3306
05

هر مرحله چه کاری انجام می‌دهد؟

به‌طور معمول فرایند شامل تازه‌کردن metadata بسته‌ها، نصب نرم‌افزار از منبع مشخص، ثبت یا فعال‌کردن Service و سپس آزمون محلی است. فعال‌سازی خودکار در Boot با سالم‌بودن سرویس در همین لحظه فرق دارد؛ هر دو را جداگانه بررسی کنید.

اگر Repository شخص ثالث اضافه می‌کنید، کلید امضا، دامنه دانلود و Codename توزیع را کنترل کنید. Pin کردن نسخه یا حداقل ثبت نسخه نصب‌شده باعث می‌شود محیط بعدی قابل تکرار باشد و Upgrade ناگهانی شما را غافلگیر نکند.

06

چطور نصب را تأیید کنیم؟

سه لایه را بررسی کنید: Process یا Service باید Running باشد، برنامه باید روی Address و Port مورد انتظار گوش کند و یک درخواست واقعی باید پاسخ درست بگیرد. پس از آن Log را برای Warningهای زمان Startup بخوانید؛ سبز بودن systemctl به‌تنهایی سلامت برنامه را تضمین نمی‌کند.

آزمون را هم از داخل سرور و هم از مسیر واقعی کاربر انجام دهید. موفقیت روی localhost ممکن است با DNS، Reverse proxy، Firewall یا TLS شکسته شود. خروجی نسخه و فایل تنظیمات مؤثر را همراه با نتیجه آزمون در مستندات سرویس ثبت کنید.

07

امن‌سازی برای محیط واقعی

سرویس را با کمترین سطح دسترسی اجرا کنید، Secretها را از فایل‌های عمومی و Repository خارج نگه دارید و فقط Interface و Port لازم را Bind کنید. برای Log محدودیت حجم و Rotation، برای داده Retention و Backup، و برای خطا Alert قابل اقدام تعریف کنید.

اگر سرویس داده پایدار دارد، قبل از ورود Traffic یک Restore آزمایشی انجام دهید. همچنین مصرف CPU، RAM، دیسک و تعداد Connection را از روز اول پایش کنید تا Baseline سالم داشته باشید؛ بدون Baseline تشخیص تغییر تدریجی دشوار می‌شود.

08

اگر مرحله‌ای خطا داد چه کنیم؟

اجرای کورکورانه mysql_secure_installation یا تغییر Plugin احراز هویت بدون شناخت نسخه می‌تواند دسترسی برنامه را بشکند.

پیام خطا و چند خط قبل و بعد آن را نگه دارید، وضعیت Package manager و Service را بررسی کنید و تغییرات همان مرحله را بازبینی کنید. به‌جای اجرای چند راه‌حل پراکنده از اینترنت، ابتدا مشخص کنید خطا مربوط به شبکه، Repository، Permission، Syntax، Port یا Dependency است.

برای بازگشت، فایل تنظیمات قبلی، نسخه بسته و داده را در دسترس نگه دارید. Rollback خوب فقط حذف Package نیست؛ باید بدانید چه فایل، کاربر، Rule فایروال یا Schema در طول نصب تغییر کرده است.

09

نگهداری بعد از نصب

نصب پایان کار نیست. چرخه Patch، آزمون Upgrade، Backup، Rotation لاگ، تمدید گواهی و بازبینی دسترسی را در تقویم عملیات قرار دهید. ابتدا Update را در محیط آزمایشی اجرا کنید و برای سرویس حیاتی نسخه و زمان تغییر را ثبت کنید.

هر چند وقت یک‌بار از دید یک سرور تازه، راهنما را دوباره اجرا کنید. اگر نتیجه فقط با دانش ضمنی یک نفر قابل تکرار است، فرایند هنوز پایدار نشده و باید به Script، Infrastructure as Code یا Runbook دقیق‌تر تبدیل شود.

10

پرسش‌های مهمی که قبل از اقدام باید جواب دهید

برای اینکه پاسخ «آموزش نصب MySQL» فقط در حد اطلاعات عمومی نماند، ابتدا وضعیت فعلی خود را با عدد توصیف کنید: نسخه سیستم‌عامل یا نرم‌افزار، تعداد کاربر هم‌زمان، مصرف معمول و اوج منابع، حجم و رشد داده، محدودیت شبکه و بیشترین قطعی قابل قبول. بدون این اطلاعات ممکن است توصیه‌ای که از نظر فنی درست است، برای محیط شما انتخاب مناسبی نباشد.

دو سؤال بعدی مستقیماً از نکات این موضوع می‌آیند: «برای برنامه کاربر و Schema جدا بسازید.» در زیرساخت شما چگونه اندازه‌گیری یا تأیید می‌شود؟ و «bind-address و فایروال را هماهنگ کنید.» چه اثری روی کاربر، هزینه یا مسیر بازیابی دارد؟ پاسخ را در قالب شواهدی مانند خروجی فرمان، نمودار متریک، نتیجه آزمون یا مستند ارائه‌دهنده ثبت کنید؛ اتکا به حافظه و حدس برای تصمیم عملیاتی کافی نیست.

11

یک برنامه عملی کم‌ریسک

کار را با ثبت وضعیت فعلی و یک معیار موفقیت آغاز کنید. سپس پیشنهاد اصلی این راهنما را در کوچک‌ترین محیط نماینده اجرا کنید: سرویس را نصب و فعال کنید، وضعیت را ببینید و سپس با حساب مدیریتی محلی Database و کاربر برنامه را بسازید. Backup و Restore آزمایشی را همان ابتدا تعریف کنید. نتیجه را در حالت عادی و در یک سناریوی خطا یا فشار کنترل‌شده بسنجید. اگر معیار بهتر نشد، به‌جای افزودن تغییرات بیشتر، فرض اولیه را بازبینی کنید.

پیش از اعمال تغییر در سرویس اصلی، روش بازگشت، مسئول تصمیم و زمان توقف را روشن کنید. این هشدار را نیز به‌عنوان شرط توقف در نظر بگیرید: اجرای کورکورانه mysql_secure_installation یا تغییر Plugin احراز هویت بدون شناخت نسخه می‌تواند دسترسی برنامه را بشکند. پس از اجرا، نتیجه، نسخه‌ها و تنظیمات مؤثر را مستند کنید و یک زمان بازبینی تعیین کنید؛ تغییر بدون پایش ممکن است امروز سالم به نظر برسد اما در پیک بعدی شکست بخورد.

  • برای برنامه کاربر و Schema جدا بسازید.
  • bind-address و فایروال را هماهنگ کنید.
  • قبل از Tuning، Slow query و workload را اندازه بگیرید.
12

چک‌لیست نهایی

برای پایان «آموزش نصب MySQL» باید نسخه و منبع نصب، وضعیت سرویس، پورت و Firewall، آزمون واقعی، Log، Backup، Alert و روش Rollback مشخص باشند. اگر یکی از این موارد نامعلوم است، نصب از نظر عملیاتی هنوز کامل نیست.

  • برای برنامه کاربر و Schema جدا بسازید.
  • bind-address و فایروال را هماهنگ کنید.
  • قبل از Tuning، Slow query و workload را اندازه بگیرید.

نوشته تیم فنی هاستیفای

راهنماهای کاربردی برای انتخاب، اجرا و نگهداری زیرساخت.