نصب و راه‌اندازی MariaDB بر روی Debian 10

مقدمه

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

در حال حاضر یکی از راهکارهای موجود جهت جایگزینی MySQL و Debian سیستم‌هایی است که از بسته‌های MariaDB استفاده می‌کنند. شما به جای آن که بسته‌های وابسته سرور MySQL را نصب کنید، می‌توانید نسخه‌های جایگزین و مناسب MariaDB را تهیه کنید .

در یک کلام خلاصه‌ی راهنمای نصب شامل سه مرحله‌ی زیر است :
• به روز رسانی فهرست بسته با استفاده از دستور apt
• نصب بسته‌ی mariadb-server به کمک دستور apt. این بسته همچنین از ابزارهای مرتبط برای تعامل با MariaDB استفاده می‌کند.
• اجرای اسکریپت امنیتی mysql_secure_installation برای محدود کردن دسترسی به سرور

$ sudo apt update
$ sudo apt install mariadb-server
$ sudo mysql_secure_installation

این مقاله نحوه نصب MariaDB نسخه10.3 بر روی سیستم Debian 10 را توضیح میدهد. در ادامه اطمینان حاصل می‌شود که پیکربندی اولیه ایمنی دارد و در آخر اجرا شدن برنامه را تایید می‌کند.

پیش‌نیازها

برای پیروی از این مقاله آموزشی به یک سرور Debian 10 راه‌اندازی شده با پیروی کردن راهنمای تنظیم اولیه سرور در کلادینو، همراه با کاربر non-root با امتیازات sudo و همچنین به یک فایروال نیازمندید.

مرحله ۱ – نصب MariaDB

در Debian 10، نسخه ۱۰.۳ MariaDB در قسمت APT به صورت پیش‌فرض گنجانده شده‌است. این مورد توسط تیم بسته‌بندی Debian MySQL/MariaDB به عنوان MySQL پیش فرض مشخص شده است.
برای نصب، فهرست بسته در سرور خود را با کمک اسکریپت apt به روز رسانی کنید :

$ sudo apt update

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

$ sudo apt install mariadb-server

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

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

در ادامه‌ی مسیر نصب MariaDB، قدم بعدی اجرا کردن دستور امنیتی موجود می‌باشد. این دستور برخی از گزینه‌های با ایمنی کمتر را تغییر می‌دهد و از آن برای مسدود کردن سیستم root از راه دور و حذف کاربران پایگاه‌داده‌های استفاده‌نشده استفاده خواهیم کرد.
دستور امنیتی زیر را اجرا کنید:

$ sudo mysql_secure_installation

این دستور شما را به مجموعه‌ای از درخواست‌ها می‌برد که در آنجا می‌توانید تغییراتی را در گزینه‌های امنیتی برای نصب MariaDB خود اعمال نمایید.
اولین پیامی که از شما درخواست می‌شود پیامی مبنی بر وارد کردن گذرواژه root مرکز داده فعلی می‌باشد و از آنجایی که هنوز گذرواژه‌ای تایین نکرده‌اید، ENTER را برای نشان دادن “none” فشار دهید.

سپس از شما سوال خواهد شد که آیا می‌خواهید یک گذرواژه root به پایگاه‌داده اختصاص دهید. N را وارد کنید و سپس ENTER را فشار دهید. در Debian، حساب کاربری root برای MariaDB بستگی زیادی به قدرت سیستم خودکار دارد، بنابراین نباید روش‌های تایید پیکربندی را برای حساب کاربری تغییر دهیم. انجام این عمل، به روز رسانی بسته را جهت شکستن سیستم پایگاه‌داده از طریق حذف دسترسی به حساب کاربری میدیریتی (administrative) امکان پذیر خواهد کرد. جلوتر، در صورتی که اعتبار سوکت برای استفاده شما مناسب نباشد، نحوه ایجاد یک حساب مدیریتی اضافی جهت دسترسی به گذرواژه توضیح داده خواهد شد.

سپس می‌توانید Y را فشار دهید و بعد ENTER را بزنید؛ تا گزینه‌ی پیش‌فرض‌ برای تمام سوالات بعدی را قبول کنید. این باعث حذف برخی کاربران ناشناس و پایگاه‌داده آزمایشی، غیرفعال کردن سیستم root از راه دور و بارگذاری قوانین جدید خواهد شد؛ به طوری که MariaDB فورا تغییراتی که ایجاد کرده‌اید را اعمال می‌کند.

مرحله ۳ – (اختیاری) تنظیم تایید هویت کاربر و دسترسی‌ها

در سیستم‌های Debian که MariaDB 10.3 روی آنها اجرا می‌شود کاربر root به جای اینکه با یک گذرواژه هویتش را تایید کند، معمولا با استفاده از افزونه unix_socket این کار را انجام می‌دهد. این کار منجر به ایجاد امنیت و انعطاف بیشتر در خیلی از موارد می‌شود، اما هنگامی که به مدیریت کردن برنامه‌های خارجی نیاز دارید (e.g. , phpMyAdmin) ، استفاده از نرم‌افزار کمی پیچیده می‌شود.

از آنجا که سرور از حساب کاربری root برای کارهایی نظیر ثبت گردش‌ها و ورود به سرور و خروج از آن استفاده می‌کند، بهتر است جزئیات تایید اعتبار حساب کاربری را تغییر ندهید. تغییر اعتبار در فایل پیکربندی /etc/mysql/debian.cnf debian.cnf ممکن است در ابتدا کارساز باشد، اما به روزرسانی‌های بسته هم می‌توانند به طور بالقوه همان تغییرات را رونویسی کنند. به جای تغییر دادن حساب root، نگهداری کنندگان بسته پیشنهاد می‌کنند یک حساب مدیریتی جداگانه برای دسترسی مبتنی بر گذرواژه ایجاد کنید.

برای انجام این کار، یک حساب جدید به نام  admin با قابلیت‌های مشابه حساب کاربری root ایجاد کنید اما برای تایید هویت پیکربندی شده‌است. برای انجام این کار، درخواست MariaDB را از ترمینال خود باز کنید:

$ sudo mysql

حال، یک حساب کاربری جدید با دسترسی‌های root و قابلیت دسترسی به گذرواژه را ایجاد کنید. نام کاربری و گذرواژه مطابق میل خود تغییر دهید:

MariaDB [(none)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

دسترسی‌ها را مرور کنید تا مطمئن شوید که تا اینجای کار ذخیره شده و در دسترس هستند:

MariaDB [(none)]> FLUSH PRIVILEGES;

سپس، از MariaDB shell خارج شوید :

MariaDB [(none)]> exit

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

مرحله ۴ – تست MariaDB

هنگامی که نرم‌افزار از طریق مخازن گفته شده در دستورالعمل نصب گردید، MariaDB باید به طور خودکار شروع به کار کند. برای تست این قسمت، وضعیت (status) را بررسی کنید.

$ sudo systemctl status mariadb

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

Output
● mariadb.service - MariaDB 10.3.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-07-12 20:35:29 UTC; 47min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 2036 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 2378)
   Memory: 76.1M
   CGroup: /system.slice/mariadb.service
           └─2036 /usr/sbin/mysqld

Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 6/7: Checking and upgrading tables
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Running 'mysqlcheck' with connection arguments: --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Connecting to localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Disconnecting from localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Processing databases
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: information_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: performance_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: OK
Jul 12 20:35:30 deb-mariadb1 /etc/mysql/debian-start[2132]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

اگر MariaDB در حال اجرا نباشد، می‌توانید آن را با دستور sudo systemctl start mariadb اجرا کنید.
برای بررسی بیشتر می‌توانید با استفاده از ابزار mysqladmin به پایگاه‌داده متصل شوید، که یک مشتری است که به شما اجازه می‌دهد دستورات مدیریتی را اجرا کنید. برای مثال، این دستور می‌گوید که به صورت root به MariaDB متصل شوید و با استفاده از Unix socket نسخه را برگردانید :

$ sudo mysqladmin version

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

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

Server version      10.3.15-MariaDB-1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         48 min 14 sec

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

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

 $ mysqladmin -u admin -p version

این بدان معنی است که MariaDB بالا آمده و در حال اجرا است و کاربر شما موفق به تایید هویتش شده است.

نتیجه‌گیری

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


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

منبع:

https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-debian-10