MariaDB يك سيستم مديريت پايگاه داده منبع باز است كه معمولاً به عنوان جايگزيني براي MySQL به عنوان بخش ديتابيس LAMP محبوب (Linux ، Apache ، MySQL ، PHP / Python / Perl) استفاده مي شود. درواقع به عنوان جايگزيني براي MySQL در نظر گرفته شده است.
نسخه كوتاه اين راهنماي نصب شامل اين سه مرحله است:
• ايندكس بسته خود را با استفاده از APT به روز كنيد
• پكيج mariadb-server را با استفاده از APT نصب كنيد. اين بسته همچنين ابزارهاي مرتبط را براي تعامل با MariaDB در نظر مي گيرد
• اسكريپت امنيتي شامل mysql_secure_installation را اجرا كنيد تا دسترسي به سرور مجازي محدود شود
$ sudo apt update

$ sudo apt install mariadb-server

$ sudo mysql_secure_installation

در اين آموزش نحوه نصب MariaDB در سرور مجازي Ubuntu 20.04 توضيح داده خواهد شد و تأييد مي شود كه در حال اجرا است و از پيكربندي اوليه ايمن برخوردار است.
پيش نيازها
براي دنبال كردن اين آموزش ، به يك سرور مجازي Ubuntu 20.04 نياز داريد. اين سرور مجازي بايد شامل يك كاربر ادمين غير ريشه و فايروال پيكربندي شده با UFW باشد. ميتوانيد طبق راهنماي ستاپ اوليه سرور مجازي اين تنظيمات را انجام دهيد.
مرحله 1 – نصب MariaDB
در زمان نوشتن اين مقاله، مخازن APT پيش فرض Ubuntu 20.04 شامل نسخه 10.3 MariaDB است.
براي نصب آن ، ايندكس بسته را بر روي سرور مجازي خود با apt به روز كنيد:
$ sudo apt update

سپس بسته را نصب كنيد:
$ sudo apt install mariadb-server

اين دستورات MariaDB را نصب مي كنند ، اما از شما خواسته نمي شود كه رمز عبوري را تنظيم كنيد يا تغييرات ديگري در پيكربندي ايجاد كنيد. از آنجا كه پيكربندي پيش فرض، نصب MariaDB را ناايمن مي كند ، ما از اسكريپتي استفاده خواهيم كرد كه بسته mariadb-server براي محدود كردن دسترسي به سرور مجازي و حذف حساب هاي بلااستفاده فراهم مي كند.
مرحله 2 – پيكربندي MariaDB
براي نصب هاي جديد MariaDB ، مرحله بعدي اجراي اسكريپت امنيتي گنجانده شده است. اين اسكريپت برخي از گزينه هاي پيش فرض بدون ايمني را تغيير مي دهد. ما از آن براي مسدود كردن ورود به سيستم ريشه از راه دور و حذف كاربران استفاده نشده پايگاه داده استفاده خواهيم كرد.
اسكريپت امنيتي را اجرا كنيد:
$ 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):

اعلان بعدي از شما سؤال مي كند كه آيا مي خواهيد رمزعبور ريشه ديتابيس را تنظيم كنيد يا خير. در اوبونتو ، حساب اصلي براي MariaDB با نگهداري سيستم خودكار گره خورده است ، بنابراين ما نبايد روشهاي تأييد صحت تنظيم شده را براي آن حساب تغيير دهيم. با اين كار امكان به روزرساني بسته با حذف دسترسي به حساب ادمين باعث مي شود سيستم به روزرساني بسته شود. . 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

اگر تاييد هويت سوكت براي مورد شما مناسب نيست، در ادامه نحوه تنظيم حساب كاربري ادمين اضافه براي دسترسي به پسورد را پوشش خواهيم داد.
از آنجا ، مي توانيد Y و سپس ENTER را فشار دهيد تا جواب پيش فرض همه سؤالات بعدي را بپذيريد. اين كار برخي از كاربران ناشناس و بانك اطلاعاتي آزمايشي حذف مي كند ، ورود به سيستم ريشه از راه دور را غيرفعال مي كند و اين قوانين جديد را بارگذاري مي كند تا MariaDB سريعاً تغييراتي را كه ايجاد كرده ايد به مرحله اجرا برساند.
با اين كار، پيكربندي ايمن اولي را به پايان ميرسانيد. مرحله بعدي يك مرحله اختياري است، با اين حال اگر ترجيح ميدهيد با پسورد تاييد هويت را به سرور مجازي MariaDB انجام دهيد، آن را دنبال كنيد.
مرحله 3 – تنظيم تأييد اعتبار كاربر و امتيازات (اختياري)
در سيستم هاي اوبونتو كه MariaDB 10.1 در حال اجرا است ، كاربر اصلي MariaDB با استفاده از افزونه unix_socket به طور پيش فرض و نه با رمز عبور ، تأييد اعتبار را انجام مي دهد. اين امر امكان امنيت و قابليت استفاده بيشتري را در بسياري از موارد فراهم مي كند ، اما در صورت نياز به دادن امتيازات اجرايي به يك برنامه خارجي (به عنوان مثال ، phpMyAdmin) مي تواند كار را پيچيده تر كند.
از آنجا كه سرور مجازي از حساب root براي كارهايي مانند گردش ورود به سيستم و شروع و متوقف كردن سرور مجازي استفاده مي كند ، بهتر است جزئيات تأييد اعتبار حساب root را تغيير ندهيد. تغيير اعتبار در فايل پيكربندي /etc/mysql/debian.cnf ممكن است در ابتدا كار كند ، اما به روزرساني هاي بسته به طور بالقوه مي توانند آن تغييرات را بازنويسي كنند. به جاي تغيير حساب اصلي ، نگهدارندگان بسته توصيه مي كنند يك حساب ادمين جداگانه براي دسترسي مبتني بر رمز عبور ايجاد كنيد.
براي اين كار ، يك حساب كاربري جديد با نام admin با همان قابليت هاي root ايجاد مي كنيم ، كه براي احراز هويت رمز عبور پيكربندي شده است. براي انجام اين كار ، اعلان MariaDB را از پايانه خود باز كنيد:
$ sudo mariadb

اكنون كاربر جديدي با امتيازات اصلي و دسترسي مبتني بر رمز عبور ايجاد خواهيم كرد. نام كاربري و رمز عبور را براي مطابقت با موارد برگزيده خود تغيير دهيد:
mariaDB [(none)]> GRANT ALL ON *.* TO ‘admin’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

براي اطمينان از ذخيره و در دسترس بودن آنها در بخش كنوني ، امتيازات را فلاش كنيد:
mariaDB [(none)]> FLUSH PRIVILEGES;

پس از اين ، از پوسته MariaDB خارج شويد:
mariaDB [(none)]> exit

در آخر ، بياييد نصب 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 ، كه يك كلاينت است و به شما امكان اجراي دستورات ادمين را مي دهد ، به پايگاه داده وصل شويد. براي مثال ، اين دستور مي گويد كه به عنوان 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

اگر يك كاربر ادمين جداگانه را با تأييد اعتبار رمزگذاري كرده ايد ، مي توانيد همان كار را با تايپ كردن اين دستور انجام دهيد:
$ mysqladmin -u admin -p version

اين بدان معناست كه MariaDB در حال كار است و كاربر شما قادر به تأييد هويت موفقيت آميز ميباشد.
نتيجه
در اين راهنما سيستم مديريت پايگاه داده رابطه اي MariaDB را نصب كرده و با استفاده از اسكريپت mysql_secure_installation كه با آن همراه است ، آن را ايمن كرديد. همچنين اين گزينه را داشتيد كه قبل از تست عملكرد سرور مجازي MariaDB ، يك كاربر جديد ادمين ايجاد كنيد كه از تأييد اعتبار مبتني بر پسورد استفاده كند.
اكنون كه سرور مجازي MariaDB را در حال اجرا و ايمن داريد ، در اينجا چند نمونه از مراحل بعدي كه مي توانيد براي كار با سرور مجازي انجام دهيد ، آورده شده است:
آموزش نحوه ورود و خروج بانكهاي اطلاعاتي
تمرين اجراي پرس و جوهاي SQL
گنجاندن MariaDB ذر يك پشته برنامه بزرگتر