Hướng dẫn cách cài đặt MariaDB Ubuntu 20.04

Hướng dẫn này sẽ giải thích cách cài đặt MariaDB Ubuntu 20.04, xác minh rằng nó đang chạy và có cấu hình ban đầu an toàn hay không.

Giới thiệu về MariaDB

MariaDB là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở, phổ biến và thường được sử dụng như một sự thay thế cho MySQL. Nó là một phần quan trọng của ngăn LAMP (Linux, Apache, MariaDB, PHP/Python/Perl) được sử dụng rộng rãi trong việc xây dựng các ứng dụng web và dịch vụ trên nền tảng Linux. MariaDB được thiết kế để cung cấp tính năng và hiệu suất tương đương với MySQL, đồng thời cung cấp một số cải tiến và tính năng bổ sung.

Phiên bản rút gọn của hướng dẫn cài đặt bao gồm ba bước sau:

  • Cập nhật chỉ mục gói của bạn bằng cách sử dụng apt
  • Cài đặt gói mariadb-server bằng cách sử dụng apt. Gói này cũng kèm theo các công cụ liên quan để tương tác với MariaDB
  • Chạy tập lệnh bảo mật mysql_secure_installation được bao gồm để hạn chế quyền truy cập vào máy chủ
$ sudo apt update
$ sudo apt install mariadb-server
$ sudo mysql_secure_installation

Từng bước cài đặt MariaDB Ubuntu 20.04

Bước 1 - Cài đặt MariaDB Ubuntu 20.04

Các kho lưu trữ APT mặc định của Ubuntu 20.04 bao gồm phiên bản MariaDB Để cài đặt nó, hãy cập nhật chỉ mục gói trên máy chủ của bạn bằng lệnh apt:

$ sudo apt update

Sau đó tiến hành cài đặt gói:

$ sudo apt install mariadb-server

Đảm bảo rằng MariaDB Ubuntu 20.04 đang chạy bằng lệnh systemctl start:

$ sudo systemctl start mariadb.service

Sau khi cài đặt và khởi động MariaDB bằng những lệnh trên, chúng ta cần thực hiện các bước bổ sung để tăng cường bảo mật. Cấu hình mặc định của MariaDB không đảm bảo tính an toàn, vì vậy chúng ta sẽ sử dụng một tập lệnh được cung cấp bởi gói mariadb-server để hạn chế quyền truy cập vào máy chủ và loại bỏ các tài khoản không sử dụng.

Bước 2 - Cấu hình MariaDB Ubuntu 20.04

Sau khi cài đặt MariaDB, bước tiếp theo là thực hiện tập lệnh bảo mật đi kèm. Tập lệnh này sẽ thay đổi các tùy chọn mặc định không an toàn, như việc cho phép đăng nhập root từ xa và xóa các tài khoản mẫu.

Chạy tập lệnh bảo mật:

$ sudo mysql_secure_installation

Qua tập lệnh bảo mật, bạn sẽ tiếp tục được hỏi một loạt các câu hỏi để thay đổi các tùy chọn bảo mật cho cài đặt MariaDB Ubuntu 20.04. Lời nhắc đầu tiên sẽ yêu cầu bạn nhập mật khẩu root hiện tại của cơ sở dữ liệu. Tuy nhiên, vì bạn chưa thiết lập mật khẩu, bạn chỉ cần nhấn ENTER để xác nhận "không có mật khẩu".

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

Lời nhắc tiếp theo yêu cầu bạn có muốn thiết lập mật khẩu root cho cơ sở dữ liệu hay không. Trên Ubuntu, tài khoản root cho MariaDB liên quan chặt chẽ đến việc bảo trì hệ thống tự động, vì vậy chúng ta không nên thay đổi các phương pháp xác thực đã cấu hình cho tài khoản đó. Làm như vậy sẽ khiến khả năng một gói cập nhật gây hỏng hệ thống cơ sở dữ liệu bằng cách xóa quyền truy cập vào tài khoản quản trị. Nhập N và sau đó nhấ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

Sau đó, chúng tôi sẽ đề cập đến cách thiết lập một tài khoản quản trị bổ sung để truy cập bằng mật khẩu nếu xác thực socket không phù hợp với trường hợp sử dụng của bạn.

Từ đó, bạn có thể nhấn Y và sau đó nhấn ENTER để chấp nhận các giá trị mặc định cho tất cả các câu hỏi tiếp theo. Điều này sẽ xóa một số người dùng ẩn danh và cơ sở dữ liệu kiểm tra, vô hiệu hóa đăng nhập root từ xa và tải các quy tắc mới này để MariaDB ngay lập tức thực hiện các thay đổi bạn đã thực hiện.

Với điều đó, bạn đã hoàn thành cấu hình bảo mật ban đầu của MariaDB. Bước tiếp theo là tùy chọn, tuy nhiên, bạn nên tuân theo nó nếu bạn muốn xác thực với máy chủ MariaDB bằng mật khẩu.

Bước 3 - (Tùy chọn) Tạo một người dùng quản trị sử dụng xác thực bằng mật khẩu

Trên các hệ thống Ubuntu chạy MariaDB 10.3, người dùng root của MariaDB được thiết lập để xác thực bằng cách sử dụng tiện ích unix_socket mặc định thay vì mật khẩu. Điều này cho phép một số tùy chọn bảo mật và khả năng sử dụng tốt hơn trong nhiều trường hợp, nhưng nó cũng có thể làm phức tạp khi bạn cần cho phép một chương trình bên ngoài (ví dụ: phpMyAdmin) có quyền quản trị.

Vì máy chủ sử dụng tài khoản root để thực hiện các tác vụ như xoay log và khởi động/dừng máy chủ nên tốt nhất là không thay đổi thông tin xác thực của tài khoản root. Thay đổi thông tin xác thực trong tệp cấu hình /etc/mysql/debian.cnf có thể hoạt động ban đầu nhưng các cập nhật gói có thể ghi đè lên những thay đổi đó. Thay vì sửa đổi tài khoản root, người duy trì gói khuyến nghị tạo một tài khoản quản trị riêng biệt cho việc truy cập bằng mật khẩu.

Vì vậy, chúng ta sẽ tạo một tài khoản mới có tên là admin với các khả năng tương tự như tài khoản root nhưng được cấu hình để xác thực bằng mật khẩu. Mở giao diện dòng lệnh MariaDB từ cửa sổ terminal của bạn:

$ sudo mariadb

Sau đó, tạo một người dùng mới với quyền root và truy cập dựa trên mật khẩu. Đảm bảo thay đổi tên người dùng và mật khẩu để phù hợp với sở thích của bạn:

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

Chạy lệnh sau để xác nhận rằng các quyền đã được lưu và có sẵn trong phiên làm việc hiện tại:

MariaDB [(none)]> FLUSH PRIVILEGES;

Sau đó, thoát khỏi giao diện dòng lệnh MariaDB:

MariaDB [(none)]> exit

Cuối cùng, chúng ta hãy kiểm tra cài đặt MariaDB.

Bước 4 - Kiểm tra MariaDB

Khi cài đặt từ kho lưu trữ mặc định, MariaDB sẽ tự động bắt đầu chạy. Để kiểm tra điều này, bạn có thể kiểm tra trạng thái của MariaDB bằng cách chạy lệnh sau:

$ sudo systemctl status mariadb

Bạn sẽ nhận được đầu ra tương tự như sau:

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

Nếu MariaDB không chạy, bạn có thể khởi động nó bằng lệnh sudo systemctl start mariadb.

Để kiểm tra thêm, bạn có thể kết nối vào cơ sở dữ liệu bằng cách sử dụng công cụ mysqladmin, một công cụ khách hàng cho phép bạn chạy các lệnh quản trị. Ví dụ, lệnh sau cho biết kết nối vào MariaDB dưới tài khoản root bằng cách sử dụng Unix socket và trả về phiên bản:

$ sudo mysqladmin version

Bạn sẽ nhận được đầu ra như sau:

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

Nếu bạn đã cấu hình một người dùng quản trị riêng biệt sử dụng xác thực bằng mật khẩu, bạn có thể thực hiện cùng một hoạt động bằng cách nhập lệnh sau:

$ mysqladmin -u admin -p version

Trong hướng dẫn MariaDB Ubuntu 20.04 này, bạn đã cài đặt hệ thống quản lý cơ sở dữ liệu quan hệ MariaDB và bảo mật nó bằng việc sử dụng tập lệnh mysql_secure_installation được cài đặt sẵn. Bạn cũng có thể tạo một người dùng quản trị mới sử dụng xác thực bằng mật khẩu trước khi kiểm tra tính năng của máy chủ MariaDB.

Bài viết liên quan