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

در این راهنما به‌شکل گام‌به‌گام فرآیند نصب MariaDB روی یک سرور Ubuntu را بررسی می‌کنیم.

نصب MariaDB

ابتدا apt را به‌روزرسانی می‌کنیم:

sudo apt update

 

سپس به‌کمک دستور زیر MariaDB را نصب می‌کنیم:

sudo apt install mariadb-server

با استفاده از دستور زیر MariaDB را روی سرور راه‌اندازی می‌کنیم:

sudo systemctl start mariadb.service

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

پیکربندی MariaDB

گام بعدی، اجرای اسکریپت امنیتی است. این اسکریپت گزینه‌های پیش‌فرضی که کم‌تر امن هستند مانند ورود با Root یا کاربران نمونه (Sample) را تغییر می‌دهد.

با وارد کردن دستور زیر اسکریپت امنیتی را اجرا کنید:

sudo mysql_secure_installation

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

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): 

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

. . .
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

درخواست بعدی از شما می‌پرسد که آیا می‌خواهید رمز عبور Root پایگاه داده را تنظیم کنید یا خیر. در Ubuntu، کاربر Root در MariaDB وابسته به فرآیندهای نگه‌داری (Maintenance) خودکار سیستم است، بنابراین نباید روش‌های احراز هویت پیکربندی‌شده را برای آن تغییر دهیم. انجام این کار این امکان را ایجاد می‌کند که یک به‌روزرسانی بسته، سیستم پایگاه داده را تخریب کند. N را وارد کرده و سپس ENTER را فشار دهید.

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

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

ایجاد یک کاربر ادمین با پسورد

با نصب MariaDB 10.3 روی Ubuntu، یوزر Root ماریادی‌بی به‌شکل پیش‌فرض به جای پسورد از پلاگین unix_socket برای احراز هویت استفاده می‌کند. این ویژگی می‌تواند امنیت و کاربری آن را در بسیاری موارد افزایش دهد اما در برخی شرایط مانند دادن دسترسی ادمین به برنامه‌های خارجی مثل phpMyAdmin می‌تواند فرآیند‌ها را پیچیده کند.

با توجه به این‌که کارهایی مثل راه‌اندازی و توقف MariaDB با کاربر Root آن انجام می‌شود، توصیه می‌شود تنظیمات آن را تغییر ندهیم. به جای آن، می‌توانیم یک کاربر با دسترسی‌های ادمین، قابلیت‌های Root و پسورد بسازیم.

ترمینال MariaDB را با دستور زیر باز کنید:

sudo mariadb

سپس یک کاربر جدید با دسترسی‌های Root و رمز عبور ایجاد کنید. حتمن نام کاربری (در این‌جا admin) و رمز عبور (در این‌جا password) را بر اساس نیازتان تغییر دهید:

GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

سپس دستور زیر را وارد کنید:

FLUSH PRIVILEGES;

حال می‌توانید از ترمینال MariaDB خارج شوید:

exit

استفاده از MariaDB

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

sudo systemctl status mariadb

اگر خروجی‌ای مشابه زیر دریافت کردید یعنی MariaDB به‌درستی در حال اجراست:

● 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 که یک کلاینت برای اجرای دستورها با اختیارات ادمین است، به پایگاه داده متصل شوید. برای نمونه، به‌کمک این دستور با استفاده از Unix Socket و با root به MariaDB متصل می‌شوید و می‌توانید نسخه‌ی آن را بررسی کنید:

sudo mysqladmin version

خروجی به‌شکل زیر خواهد بود:

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 -u admin -p

سپس از شما خواسته می‌شود تا پسوردتان را وارد کنید. پس از آن می‌توانید با استفاده از دستور زیر یک دیتابیس بسازید:

CREATE DATABASE <database_name>;

مقدار <database_name> را به نامی که در نظر دارید تغییر دهید. با استفاده از دستور زیر می‌توانید همه‌ی دیتابیس‌های موجود را لیست کنید تا مطمین شوید دیتابیس شما ساخته شده است:

SHOW DATABASES;

کار کردن با جدول‌ها

برای ساخت یک جدول ابتدا لازم است تا با دستور mysql -u admin -p و ورود پسوردتان، وارد ماریا دی‌بی شوید. سپس با استفاده از دستور زیر دیتابیسی که می‌خواهید در آن جدول بسازید انتخاب کنید:

USE <database_name>;

مقدار <database_name> را به نامی که در نظر دارید تغییر دهید.

ساخت جدول

اکنون می‌توانید با استفاده از دستور زیر یک جدول با نام customers بسازید که دارای ۴ ستون ID، نام، ایمیل و زمان ساخت باشد:

CREATE TABLE customers ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, created_at TIMESTAMP DEFAULT NOW() );

Insert کردن داده‌ها

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

INSERT INTO customers (name, email) VALUES ('John Smith', 'john@example.com');

این دستور یک ردیف با نام John Smith و ایمیل john@example.com ایجاد می‌کند. مقدارهای ‍‍id و created_at نیر به‌طور خودکار تعیین می‌شوند.

Select کردن داده‌ها

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

SELECT name, email FROM customers;

این دستور ستون‌های name و email را از جدول customers دریافت می‌کند.

Update کردن داده‌ها

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

UPDATE customers SET email = 'new-email@example.com' WHERE id = 1;

این دستور ایمیل ردیف ۱ از جدول customers را به ‍new-email@example.com تغییر می‌دهد.

Delete کردن داده‌ها

برای حذف داده‌های جدول می‌توانید از دستوری به‌شکل زیر استفاده کنید:

DELETE FROM customers WHERE id = 1;

این دستور داده‌های ردیف ۱ جدول customers را حذف می‌کند.

برای راهنمایی بیش‌تر می‌توانید مستندات MariaDB را بررسی کنید.