آیا می خواهید سیستم مدیریت پایگاه داده رابطه ای خود را در اوبونتو راه اندازی کنید؟ نصب پایگاه داده MySQL روی سرور را در نظر بگیرید.
MySQL یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) منبع باز، قدرتمند و پرکاربرد است که دادهها را در جداول دادهای منفرد یا چندگانه سازماندهی میکند، جایی که انواع دادهها ممکن است به یکدیگر مرتبط باشند. زبان پرس و جو ساختاریافته (SQL) با RDBMS ها کار می کند و زمانی که شخصی می خواهد حجم عظیمی از داده ها را ذخیره یا مدیریت کند، سرویس پایگاه داده رابطه ای و SQL را به دست می آورد.
این مقاله نحوه پیکربندی MySQL را در سرور اوبونتو 18.04 نشان می دهد. همچنین به شما نشان می دهد که چگونه احراز هویت و به دنبال آن مدیریت سرویس را فعال کنید. در پایان، نحوه آزمایش سرویس برای تأیید پیکربندی موفق را نیز یاد خواهید گرفت.
مرحله 1: نصب کلاینت MySQL
برای اتصال از راه دور با سرور، mysql-client را نصب کنید:
sudo apt install mysql-client -y
برای بررسی موفقیت آمیز بودن نصب، نسخه مشتری را بررسی کنید:
mysql -V
خروجی:
mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
اکنون می توانید از دستور زیر برای برقراری ارتباط از راه دور با سرور MySQL استفاده کنید:
mysql -u <username> -p <password>-h HOSTNAME_OR_IP
مرحله 2: نصب سرور MySQL
قبل از نصب MySQL، مطمئن شوید که سرور اوبونتو به درستی نصب و پیکربندی شده است. سرور اوبونتو 18.04 به طور پیش فرض حاوی آخرین نسخه MySQL 5.7 در مخازن است. از دستور apt برای به روز رسانی بسته های سیستم از مخزن به صورت زیر استفاده کنید:
sudo apt update
اکنون برای نصب بسته سرور MySQL از دستور زیر استفاده کنید:
sudo apt install mysql-server -y
مرحله 3: پیکربندی MySQL
در این دوره از تهدیدات امنیت سایبری مداوم، تغییر گزینه های پیش فرض پس از نصب موفقیت آمیز سرور یک استاندارد است. این بخش شما را در مورد پیکربندی سرور MySQL راهنمایی میکند تا گزینههای پیشفرض ناامن مانند ورود به سیستم ریشه از راه دور، حسابهای کاربری پیشفرض و غیره را حذف کنید.
sudo mysql_secure_installation
این اسکریپت چندین گزینه را درخواست می کند که پاسخ بله یا خیر را برای تغییر امنیت پیش فرض MySQL درخواست می کند. به عنوان مثال، اولین اعلان درخواست می کند که اگر می خواهید افزونه ای برای اعتبارسنجی رمز عبور راه اندازی کنید، به بله پاسخ دهید و ادامه دهید.
درخواست بعدی از شما می خواهد که رمز عبور حساب کاربری ریشه MySQL را تنظیم کنید. می توانید متوجه شوید که فعال کردن افزونه Validate Password اجازه می دهد تا قدرت رمز عبور را در برابر سه سطح سیاست امنیتی و طول رمز عبور تنظیم کنید.
برای تنظیم قدرت رمز عبور، عددی را که می خواهید انتخاب کنید وارد کنید. سپس سیستم از شما می خواهد که رمز عبور جدید را تنظیم کرده و مجدداً آن را برای تأیید تایپ کنید، به شرح زیر:
می توانید متوجه شوید که پس از تنظیم رمز عبور، قدرت را نشان می دهد و از شما می پرسد که آیا می خواهید ادامه دهید.
اکنون سؤالات بعدی را می پرسد:
- برای حذف کاربر آزمایشی ناشناس
- غیرفعال کردن ورود از راه دور از کاربر اصلی
- پایگاه داده های تست را حذف کنید
- جدول امتیازات را دوباره بارگیری کنید تا همه تغییرات ذخیره شوند
Y را تایپ کنید تا تنظیمات پیش فرض را برای تنظیم قوانین امنیتی ادامه دهید.
نسخه های قدیمی MySQL (قبل از 5.7.6) از شما می خواهند که دایرکتوری پایگاه داده را به صورت دستی مقداردهی اولیه کنید. در حالی که برای نسخه های بعد از آن، دستور زیر را اجرا کنید:
mysqld –initialize
مرحله 4: تنظیمات احراز هویت کاربر MySQL
صرف نظر از ایجاد رمز عبور برای یک حساب کاربری MySQL، تنظیم پیش فرض احراز هویت استفاده از رمزهای عبور را در طول برقراری اتصال غیرفعال می کند. در عوض، به طور خودکار کاربر را با کمک افزونه auth_socket احراز هویت می کند. این افزونه یک ویژگی عالی برای قابلیت استفاده است، با این حال، اگر بخواهید از یک کلاینت راه دور به پایگاه داده خود دسترسی داشته باشید، عملی نیست.
از آنجایی که دسترسی به پایگاه داده بدون رمز عبور فرآیند کار را هنگام دسترسی به یک برنامه خارجی پیچیده می کند، این بخش دو روش برای احراز هویت کاربر در برقراری اتصال را خلاصه می کند:
1. احراز هویت کاربر ریشه با رمز عبور
برای اطمینان از احراز هویت کاربر از طریق رمز عبور، می توانید افزونه را از “auth_socket” به “mysql_native_password” تغییر دهید. برای این منظور با استفاده از دستور sudo mysql صفحه اعلان MySQL را باز کنید و افزونه مورد استفاده برای احراز هویت کاربر را به صورت زیر بررسی کنید:
SELECT user, authentication_string, plugin, host FROM mysql.user;
اسکرین شات بالا نشان می دهد که کلاینت ریشه خود را با استفاده از افزونه “auth_socket” احراز هویت می کند. برای مقداردهی اولیه احراز هویت کلاینت ریشه با رمز عبور، از عبارت ALTER USER برای تنظیم افزونه “mysql_native_password” استفاده کنید.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
تغییرات بالا را به صورت زیر ذخیره کنید:
FLUSH PRIVILEGES;
عبارت “FLUSH PRIVILEGES” MySQL تغییرات جداول پایگاه داده ایجاد شده توسط بندهای ALTER، INSERT، UPDATE و DELETE را ذخیره می کند.
اکنون برای تأیید استراتژیهای احراز هویت استفاده شده توسط هر کاربر و اطمینان از عدم استفاده از افزونه “auth_socket” توسط کلاینت ریشه، دستور را دوباره اجرا کنید:
SELECT user,authentication_string,plugin,host FROM mysql.user;
اکنون کاربر root می تواند با احراز هویت از طریق دستور زیر به سرور متصل شود:
sudo mysql -u root -p
2. یک کاربر اختصاصی ایجاد کنید
راه دیگر برای فعال کردن احراز هویت بدون استفاده از mysql_native_password ایجاد یک کاربر اختصاصی به شرح زیر است:
sudo mysql
یک حساب کاربری جدید ایجاد کنید و تمام امتیازات را برای اختصاص کنترل سطح مدیریت به کاربر جدید اعطا کنید. سپس از اعلان MySQL خارج شوید. پرس و جوهای SQL زیر را یکی یکی اجرا کنید تا به این هدف برسید:
CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'localhost' WITH GRANT OPTION;
exit
مدیریت و تست سرویس MySQL با systemctl
با استفاده از دستور systemctl enable به صورت زیر سرویس را طوری تنظیم کنید که در راه اندازی سرور اوبونتو اجرا شود:
sudo systemctl enable mysql
علاوه بر این، می توانید با تایپ کردن:
sudo systemctl status mysql
یا
sudo systemctl status mysql.service
این سرویس پس از نصب MySQL به طور خودکار اجرا می شود، اما اگر اجرا نشد، می توانید با استفاده از دستور زیر سرویس را راه اندازی کنید:
sudo systemctl start mysql
شروع کار با MySQL Server در اوبونتو
MySQL یک سیستم مدیریت پایگاه داده منبع باز، کاربر پسند، مقیاس پذیر و قوی است. علاوه بر این، بخشی جدایی ناپذیر از مدل پشته LAMP/LEMP یا فناوری های کاربردی وب است. این سیستم مدیریت پایگاه داده رابطه ای (RDBMS) نصب ساده و پیکربندی آسان را در نسخه های اخیر خود ارائه می دهد.
این مقاله شما را در ایجاد یک راهاندازی اولیه MySQL راهنمایی میکند که به شما کمک میکند یادگیری نحوه کار MySQL را شروع کنید. همچنین برخی از اقدامات امنیتی مهم اولیه را در پیکربندی خود برای جلوگیری از حفره های موجود در تنظیمات پیش فرض پوشش می دهد. با پیروی از برخی نکات امنیتی پیشرفته می توانید درباره ایمن سازی MySQL اطلاعات بیشتری کسب کنید.