آموزش کامل نصب MariaDB در سرور اوبونتو 20.04

آمورش نصب MariaDB در سرور اوبونتو 20.04
Avatar
نویسنده: پرهان ایران دوست
شنبه 7 خرداد 1401
مطالعه: ۸ دقیقه ۰ نظر ۱۲۷۱ بازدید

MariaDB سیستم مدیریت دیتابیس ارتباطی متن‌بازی است که معمولاً به‌عنوان جایگزینی برای MySQL استفاده می‌شود. MySQL به‌عنوان بخشی از دیتابیس محبوب LAMP (Linux, Apache, MySQL, PHP/Python/Perl) شناخته می‌شود که قرار است جایگزینی برای MySQL باشد.

راهنمای نصب MariaDB شامل سه مرحله می‌شود:

  • با استفاده از apt، پکیج Index خود را به‌روز کنید.
  • با استفاده از apt، پکیج سرور MariaDB را نصب کنید. این پکیج ابزارهای مرتبط را نیز برای تعامل با MariaDB به‌کار می‌گیرد.
  • برای محدود‌کردن دسترسی به سرور، اسکریپت امنیتی mysql_secure_installation را اجرا کنید:
$ sudo apt update
$ sudo apt install mariadb-server
$ sudo mysql_secure_installation

در این مقاله آموزش اوبونتو از وبلاگ پارس پک، ابتدا نحوه نصب MariaDB روی سرور اوبونتو 20.04 را آموزش می‌دهیم و درادامه، نحوه اجرا و امنیت آن را بررسی می‌کنیم. پس تا پایان با ما همراه باشید.

پیش‌نیازها

  • سرور Ubuntu 20.04
  • یک کاربر non-root
  • فایروال پیکربندی‌شده با UFW

برای ذخیره‌سازی و نگهداری داده‌های مهم و حیاتی کسب‌وکارتان در سرور لینوکس پایگاه داده‌ رابطه‌ای بهتر از MariaDB پیدا نمی‌کنید. با نصب MariaDB در سرور اوبونتو 20.04 می‌توانید داده‌هایتان را سریع‌تر و بهینه‌تر از  دیتابیس MySQL مدیریت کنید.

آموزش نصب MariaDB در سرور اوبونتو 20.04

برای نصب MariaDB روی سرور اوبونتو 20.04، باید مراحل زیر را به‌ترتیب دنبال کنید:

چگونه MariaDB را در سرور اوبونتو 20.04 نصب کنیم؟
مراحل نصب و پیکربندی  MariaDB در سرور اوبونتو

مرحله 1. نصب MariaDB

برای نصب MariaDB، بسته Index را در سرور خود با apt به‌روز کنید. برای این کار، باید به‌صورت زیر عمل کنید:

$ sudo apt update

سپس، بسته را نصب کنید:

$ sudo apt install mariadb-server

مطمئن شوید که MariaDB با دستور systemctl start اجرا می‌شود:

$ sudo systemctl start mariadb.service

این دستورها MariaDB را نصب و راه‌اندازی می‌کنند؛ اما انجام این مراحل، تعیین رمزعبور یا انجام تغییرات دیگری در پیکربندی را از شما درخواست نمی‌کند.

ازآن‌جاکه نصب پیکربندی بدون رمز، پیش‌فرض MariaDB را ناامن می‌کند، از اسکریپتی استفاده می‌کنیم که بسته mariadb-server آن برای امنیت و محدودکردن دسترسی به سرور و حذف حساب‌های استفاده‌نشده به‌کار می‌رود.

راهنمای کامل نصب و پیکربندی MariaDB در اوبونتو
آموزش کانفیگ و اجرای MariaDB در Ubuntu

چگونه می‌توانیم در اوبونتو ۲۰.۰۴، ریپازیتوری نصب و راه‌اندازی کنیم؟

ریپازیتوری در اوبونتو ۲۰.۰۴

مرحله 2. پیکربندی MariaDB

پس از نصب MariaDB، مرحله بعدی اجرای اسکریپت امنیتی است. این اسکریپت برخی از گزینه‌های پیش‌فرض را برای مواردی مانند ورود به سیستم Remote Root و Sample Users تغییر می‌دهد.
اسکریپت امنیتی را به‌صورت زیر اجرا کنید:

$ sudo mysql_secure_installation

این روش شما را ازطریق برخی دستورها راهنمایی می‌کند که در آن، تغییراتی در گزینه‌های امنیتی MariaDB خود می‌توانید ایجاد کنید.

اولین اعلان از شما می‌خواهد که رمزعبور اصلی و مدنظرتان را برای پایگاه‌ داده فعلی وارد کنید. ازآ‌ن‌جاکه هنوز رمزی تنظیم نکرده‌اید، Enter را فشار دهید تا «none» را نشان دهد:

Output
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):

اعلان بعدی از شما می‌پرسد که آیا می‌خواهید رمزعبور root پایگاه‌ داده را تنظیم کنید یا خیر. در اوبونتو، حساب root برای MariaDB سیستمی خودکار است؛ بنابراین، نباید روش‌های احراز هویت پیکربندی‌شده را برای آن حساب تغییر دهیم.

انجام این کار این امکان را برای به‌روزرسانی پکیج به‌منظور شکستن قفل سیستم پایگاه‌ داده با حذف دسترسی به‌ حساب Administrative فراهم می‌کند. برای این کار، N را تایپ کنید و سپس، Enter را فشار دهید:

Output
. . .
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] N

در مرحله بعدی، نحوه راه‌اندازی حساب Administrative اضافی برای دسترسی به رمز‌عبور را توضیح خواهیم داد؛ آن‌هم درصورتی‌که احراز هویت Socket برای استفاده در نمونه شما لازم نباشد.

از آن‌جا، می‌توانید Y را وارد کنید و سپس با فشردن Enter، پیش‌فرض‌ها را برای تمام سؤالات بعدی بپذیرید. با این کار، برخی از کاربران ناشناس و پایگاه‌ داده آزمایشی حذف و ورودی‌های Remote Root غیرفعال و این قوانین جدید بارگیری می‌شوند تا MariaDB تغییرات اعمال‌شده را فوراً اجرا کند.

با این کار، پیکربندی امنیت اولیه MariaDB را به‌پایان رسانده‌اید. مرحله بعدی، مرحله‌ای اختیاری است؛ هرچند اگر ترجیح می‌دهید با رمز‌عبور در سرور MariaDB خود احراز هویت شوید، باید آن را دنبال کنید.

بررسی کامل و مفصل phpMyAdmin و نسخه‌های مختلف ارائه شده از آن.

phpMyAdmin چیست و چه ویژگی‌هایی دارد؟

مرحله 3. ایجاد کاربر Administrative که از احراز هویت با رمزعبور استفاده می‌کند (اختیاری)

در سیستم‌های اوبونتو که MariaDB 10.3 را اجرا می‌کنند، کاربر root MariaDB به‌طور پیش‌فرض و نه با رمز‌عبور، با استفاده از افزونه unix_socket احراز هویت می‌شود. این امر بیشتر اوقات امنیت و قابلیت استفاده بیشتری را فراهم می‌کند؛ اما گاهی اوقات که به اجازه‌دادن به برنامه خارجی (مثلاً phpMyAdmin) با مجوز Administrative نیاز دارید، می‌تواند شرایط را پیچیده‌تر کند.

ازآن‌جاکه سرور از حساب root برای کارهایی مانند log rotation و راه‌اندازی و توقف سرور استفاده می‌کند، بهتر است جزئیات احراز هویت حساب root را تغییر ندهید. تغییر اعتبار در فایل پیکربندی /etc/mysql/debian.cnf ممکن است در ابتدا کار کند؛ اما به‌روزرسانی‌های پکیج می‌توانند به‌طور بالقوه این تغییرات را بازنویسی کنند.

به‌جای تغییر حساب root، نگه‌دارندگان پکیج (Package Maintainers) توصیه می‌کنند حساب Administrative جداگانه‌ای برای دسترسی مبتنی‌بر رمزعبور ایجاد کنید. برای این منظور، حساب کاربری جدیدی به نام admin با همان قابلیت‌های حساب کاربری root ایجاد می‌کنید؛ اما در این‌جا برای احراز هویت رمز‌عبور پیکربندی شده است. در مرحله بعد، به روش زیر MariaDB را از ترمینال خود به‌سرعت باز کنید:

$ sudo mariadb

سپس، کاربری جدید با ویژگی root و دسترسی مبتنی‌بر رمز‌عبور ایجاد کنید. حتماً نام کاربری و رمز‌عبور را تغییر دهید تا با تنظیمات ایجاد‌شده برنامه شما مطابقت داشته باشد:
GRANT ALL ON *.* TO ‘admin’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

برای اطمینان از ذخیره و دردسترس‌بودن آن‌ها در session جاری، امتیازها را پاک (Flush Privileges) کنید:

FLUSH PRIVILEGES;

پس‌ازآن، از پوسته MariaDB خارج شوید:

exit

در‌نهایت پس از نصب، MariaDB را آزمایش می‌کنیم.

نحوه ایجاد کاربری Administrative هنگام نصب MariaDB در اوبونتو
چگونه سطح کاربری ادمین را هنگام نصب MariaDB در اوبونتو فعال کنیم؟

مرحله 4. تست MariaDB

هنگامی که این برنامه از منابع پیش‌فرض نصب می‌شود، MariaDB به‌طور خودکار شروع به اجرا می‌کند. برای تست آن، کامند زیر را وارد کنید:

$ sudo systemctl status mariadb

خروجی را مشابه موارد زیر دریافت خواهید کرد:

Output
● mariadb.service - MariaDB 10.3.22 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 25914 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 2345)
Memory: 65.6M
CGroup: /system.slice/mariadb.service
└─25914 /usr/sbin/mysqld
. . .

اگر در مرحله قبل MariaDB اجرا نمی‌شود، آن را با دستور sudo systemctl start mariadb می‌توانید شروع کنید.

برای بررسی بیشتر، با استفاده از ابزار mysqladmin که یک کلاینت است و به شما امکان اجرای دستورهای Administrative را می‌دهد، می‌توانید به پایگاه‌ داده متصل شوید. به‌عنوان‌ مثال، این کامند می‌گوید که با استفاده از سوکت Unix به‌عنوان root به MariaDB متصل شوید و نسخه را برگردانید:

$ sudo mysqladmin version

درادامه، خروجی‌ای شبیه به خروجی زیر دریافت خواهید کرد:

Output
mysqladmin Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version 10.3.22-MariaDB-1ubuntu1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 4 min 49 sec

Threads: 7 Questions: 467 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 1.615

اگر جداگانه کاربر Administrative دیگری را با احراز هویت ازطریق رمز‌عبور مدنظرتان پیکربندی کرده‌اید، با تایپ‌کردن دستور زیر، همان عملیات را می‌توانید برای آن نیز انجام دهید:

$ mysqladmin -u admin -p version

این بدان‌معناست که MariaDB راه‌اندازی شده است و کاربر شما با موفقیت می‌تواند احراز هویت کند.

مقاله‌ی زیر آموزش تنظیم و پیکره‌بندی و‌ب‌سرور است در CWP

تنظیم وب سرور در CWP

جمع‌بندی

در این مقاله آموزش لینوکس از سری مقالات آموزش سیستم عامل وبلاگ پارس‌پک آموزشی داشتیم جهت نصب سیستم مدیریت پایگاه‌ داده ارتباطی MariaDB و ایمن‌سازی آن بوسیله اسکریپت mysql_secure_installation.

همچنین، کاربر Administrative جدیدی ایجاد کردیم که قبل از آزمایش عملکرد سرور MariaDB، از احراز هویت ازطریق رمز‌عبور تعبیه‌شده استفاده می‌کند. اکنون سرور MariaDB ایمن و در حال اجرا داریم.

سؤالات متداول

1. چگونه می‌توانیم MariaDB را در اوبونتو نصب کنیم؟

برای نصب MariaDB در اوبونتو 20.04، باید مراحل زیر را دنبال کنید:

$ sudo apt update

با استفاده از کامند زیر، تمامی پکیج‌ها به‌روزرسانی می‌شوند:

$ sudo apt install mariadb-server

پس از اتمام مراحل نصب، وضعیت سرور پایگاه داده را با دستور زیر بررسی کنید:

$ sudo systemctl status mariadb. ...
$ mysql –V.

2. آیا می‌توانیم هم MariaDB و هم MySQL اوبونتو را نصب کنیم؟

بله، همان‌طور‌که دو نمونه MySQL می‌توانند با‌هم وجود داشته باشند. ناگفته نماند MariaDB هنوز جایگزینی حذفی است.