<p dir="rtl" align="center"> بسم الله الرحمن الرحیم </p>

# <p dir="rtl" align="center">نحوه نصب MariaDB در Ubuntu 22.04</p> #

<p dir="rtl" align="right">معرفی
<br>
 MariaDB یک سیستم مدیریت پایگاه داده رابطه‌ای منبع باز است که معمولاً به عنوان جایگزینی برای MySQL به عنوان بخش پایگاه داده پشته <br>محبوب LAMP (Linux، Apache، MySQL، PHP/Python/Perl) استفاده می‌شود.  در نظر گرفته شده است که جایگزینی برای MySQL باشد.
<br>
 نسخه کوتاه این راهنمای نصب شامل این سه مرحله است:<br>
<br>
     فهرست بسته خود را با استفاده از apt به روز کنید<br>
     بسته mariadb-server را با استفاده از apt نصب کنید.  این بسته همچنین ابزارهای مرتبط را برای تعامل با MariaDB می‌کِشد<br>
     اسکریپت امنیتی mysql_secure_installation را اجرا کنید تا دسترسی به سرور را محدود کنید
</p>


<p dir="rtl" align="right">به روز رسانیها را بررسی کنید و قبل از انجام هر اقدام دیگری آنها را نصب کنید. </p>

```groovy
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
```
## <p dir="rtl" align="right"> گام اول: نصب MariaDB </p> ##
<p dir="rtl" align="right">از زمان نگارش این مقاله، مخازن APT پیش‌فرض اوبونتو 22.04 شامل MariaDB نسخه 10.5.12 است.
 برای نصب آن، فهرست بسته را در سرور خود با apt به روز کنید:</p>

```groovy
sudo apt update
```
سپس بسته را نصب کنید:

```groovy
sudo apt install mariadb-server
```
<p dir="rtl" align="right">این دستورات MariaDB را نصب می‌کنند، اما از شما خواسته نمی‌شود رمز عبور تعیین کنید یا تغییرات دیگری در پیکربندی انجام دهید.  از آنجایی که پیکربندی پیش‌فرض نصب MariaDB شما را ناامن می‌کند، از اسکریپتی استفاده می‌کنید که بسته mariadb-server برای محدود کردن دسترسی به سرور و حذف حساب‌های استفاده نشده ارائه می‌کند.</p>

## <p dir="rtl" align="right">گام دوم - پیکربندی MariaDB </p> ##

<p dir="rtl" align="right"> برای نصب های جدید MariaDB، گام بعدی اجرای اسکریپت امنیتی موجود است.  این اسکریپت برخی از گزینه های پیش فرض کمتر امن را برای مواردی مانند ورود به سیستم ریشه از راه دور و کاربران نمونه تغییر می دهد.</p>
<br>
 <p dir="rtl" align="right">اسکریپت امنیتی را اجرا کنید:</p>

```groovy
sudo mysql_secure_installation
```
<p dir="rtl" align="right">این شما را از طریق یک سری دستورات راهنمایی می کند که در آن می توانید برخی تغییرات را در گزینه های امنیتی نصب MariaDB خود ایجاد کنید.  اولین اعلان از شما می خواهد که رمز عبور اصلی پایگاه داده فعلی را وارد کنید.  از آنجایی که هنوز یکی را تنظیم نکرده‌اید، ENTER را فشار دهید تا «none» را نشان دهید.
</p>
<br>
<p  dir="rtl" align="right" style="background-color: rgb(50, 50, 50); color:white">
خروجی:
<br>
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB<br>
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!<br>
<br>
In order to log into MariaDB to secure it, you'll need the current<br>
password for the root user.  If you've just installed MariaDB, and<br>
you haven't set the root password yet, the password will be blank,<br>
so you should just press enter here.<br>
<br>
Enter current password for root (enter for none):<br>
</p>

<p dir="rtl" align="right">از شما پرسیده می شود که آیا می خواهید به احراز هویت سوکت یونیکس سوئیچ کنید.  از آنجایی که از قبل یک حساب ریشه محافظت شده دارید، می توانید از این مرحله صرف نظر کنید.  n را تایپ کرده و سپس ENTER را فشار دهید.</p>
<br>
<p  dir="rtl" align="right" style="background-color: rgb(50, 50, 50); color:white">
خروجی:
<br>
. . .
Setting the root password or using the unix_socket ensures that nobody<br>
can log into the MariaDB root user without the proper authorisation.<br>
<br>
You already have your root account protected, so you can safely answer 'n'.<br>
<br>
Switch to unix_socket authentication [Y/n] n<br>
</p>
<p dir="rtl" align="right">
بعداً، در صورتی که احراز هویت سوکت برای مورد استفاده شما مناسب نباشد، نحوه راه‌اندازی یک حساب اداری اضافی برای دسترسی رمز عبور را بررسی خواهید کرد.
<br>
 از آنجا، می‌توانید Y و سپس ENTER را فشار دهید تا پیش‌فرض‌ها را برای تمام سؤالات بعدی بپذیرید.  با این کار برخی از کاربران ناشناس و پایگاه داده آزمایشی حذف می‌شوند، ورود به سیستم ریشه از راه دور غیرفعال می‌شود و این قوانین جدید بارگیری می‌شود تا MariaDB فوراً تغییراتی را که ایجاد کرده‌اید پیاده‌سازی کند.
<br>
 با آن، پیکربندی امنیتی اولیه MariaDB را به پایان رساندید.  مرحله بعدی یک مرحله اختیاری است، اگرچه اگر ترجیح می دهید با یک رمز عبور در سرور MariaDB خود احراز هویت شوید، باید آن را دنبال کنید.
</p>

## <p dir="rtl" align="right">گام سوم- (اختیاری) ایجاد یک کاربر اداری که از احراز هویت رمز عبور استفاده می کند</p>
<p dir="rtl" align="right">
 در سیستم‌های اوبونتو که MariaDB 10.5 را اجرا می‌کنند، کاربر root MariaDB به‌طور پیش‌فرض و نه با رمز عبور، با استفاده از افزونه unix_socket احراز هویت می‌شود.  این امر در بسیاری از موارد امنیت و قابلیت استفاده بیشتر را فراهم می‌کند، اما همچنین می‌تواند در مواردی که نیاز به اجازه دادن به یک برنامه خارجی (مثلاً phpMyAdmin) حقوق مدیریتی دارید، شرایط را پیچیده‌تر کند.
<br>
 از آنجایی که سرور از حساب ریشه برای کارهایی مانند چرخش گزارش و راه‌اندازی و توقف سرور استفاده می‌کند، بهتر است جزئیات احراز هویت حساب ریشه را تغییر ندهید.  تغییر اعتبار در فایل پیکربندی /etc/mysql/debian.cnf ممکن است در ابتدا کار کند، اما به‌روزرسانی‌های بسته به طور بالقوه می‌توانند این تغییرات را بازنویسی کنند.  به جای تغییر حساب ریشه، نگهدارندگان بسته توصیه می کنند یک حساب اداری جداگانه برای دسترسی مبتنی بر رمز عبور ایجاد کنید.
<br>
 برای این منظور، یک حساب کاربری جدید به نام admin با همان قابلیت‌های اکانت root ایجاد می‌کنیم، اما برای احراز هویت رمز عبور پیکربندی شده است.  درخواست MariaDB را از ترمینال خود باز کنید:
</p>

```groovy
MariaDB [(none)]> sudo mariadb
```
<p dir="rtl" align="right">
سپس یک کاربر جدید با حقوق ریشه و دسترسی مبتنی بر رمز عبور ایجاد کنید.  حتماً نام کاربری و رمز عبور را تغییر دهید تا با تنظیمات برگزیده شما مطابقت داشته باشد:
</p>

```groovy
MariaDB [(none)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
```
<p dir="rtl" align="right">
برای اطمینان از ذخیره و در دسترس بودن آنها در جلسه جاری، امتیازات را پاک کنید:
</p>

```groovy
MariaDB [(none)]> FLUSH PRIVILEGES;
```
<p dir="rtl" align="right">
پس از این، از پوسته MariaDB خارج شوید:
</p>

```groovy
MariaDB [(none)]> exit;
```
<p dir="rtl" align="right">
در نهایت، اجازه دهید نصب MariaDB را آزمایش کنیم.
</p>

مرحله 4 - آزمایش MariaDB

<p dir="rtl" align="right">
 هنگامی که از مخازن پیش فرض نصب می شود، MariaDB به طور خودکار شروع به اجرا می کند.  برای تست این، وضعیت آن را بررسی کنید.
</p>

```groovy
sudo systemctl status mariadb
```

<p dir="rtl" align="right">
 خروجی مشابه زیر دریافت خواهید کرد:
</p>

<p style="background-color: rgb(50, 50, 50); color:white">
 Output
● mariadb.service - MariaDB 10.5.12 database server<br>
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)<br>
     Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago<br>
       Docs: man:mariadbd(8)<br>
             https://mariadb.com/kb/en/library/systemd/<br>
. . .

</p>

<p dir="rtl" align="right">
اگر MariaDB اجرا نمی شود، می توانید آن را با دستور sudo systemctl start mariadb شروع کنید.
<br>
 برای بررسی بیشتر، می‌توانید با استفاده از ابزار mysqladmin، که یک کلاینت است که به شما امکان اجرای دستورات مدیریتی را می‌دهد، به پایگاه داده متصل شوید.  به عنوان مثال، این دستور می گوید که با استفاده از سوکت یونیکس به عنوان root به MariaDB متصل شوید و نسخه را برگردانید:
</p>

```groovy
sudo mysqladmin version
```
 خروجی مشابه این را دریافت خواهید کرد:
<p style="background-color: rgb(50, 50, 50); color:white">
output
mysqladmin  Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64 <br>
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.<br>
<br>
Server version        10.5.12-MariaDB-1build1<br>
Protocol version    10<br>
Connection        Localhost via UNIX socket<br>
UNIX socket        /run/mysqld/mysqld.sock<br>
Uptime:            15 min 53 sec<br>
<br>
Threads: 1  Questions: 482  Slow queries: 0  Opens: 171  Open tables: 28  Queries per second avg: 0.505<br>
</p>

## <p dir="rtl" align="right">نتیجه </p> ##

<p dir="rtl" align="right">
 در این راهنما شما سیستم مدیریت پایگاه داده رابطه‌ای MariaDB را نصب کردید و با استفاده از اسکریپت mysql_secure_installation که با آن نصب شده بود، آن را ایمن کردید.  شما همچنین این گزینه را داشتید که یک کاربر اداری جدید ایجاد کنید که از احراز هویت رمز عبور قبل از آزمایش عملکرد سرور MariaDB استفاده می کند.<br>
<br>
 اکنون که یک سرور MariaDB در حال اجرا و ایمن دارید، در اینجا چند نمونه از مراحل بعدی که می توانید برای کار با سرور بردارید، در اینجا مشاهده کنید:<br>
</p>
    * Learn how to import and export databases
    * Practice running SQL queries
    * Incorporate MariaDB into a larger application stack

## <p dir="rtl" align="right">[منبع](https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-22-04) </p> ##

<p dir="rtl" align="center"> صلوات </p>