---
title: "Hướng dẫn cài đặt MariaDB trên Ubuntu 20.04"
description: "Hướng dẫn cài đặt MariaDB trên Ubuntu 20.04"
url: https://cloudfly.vn/techblog/huong-dan-cai-dat-mariadb-tren-ubuntu-2004
image: https://media.cloudfly.vn/posts/techblog_093I9Rt.png
---

# Hướng dẫn cài đặt MariaDB trên Ubuntu 20.04

![description image](https://media.cloudfly.vn/posts/Cach-cai-dat-MariaDB-tren-Ubuntu-20-04.jpeg)
## Giới thiệu
MariaDB là một hệ quản trị cơ sở dữ liệu có mã nguồn mở, thường được sử dụng thay thế cho MySQL như một phần của LAMP (Linux, Apache, MySQL, PHP / Python / Perl). Nó được thiết kế để thay thế MySQL.
Bài viết này sẽ hướng dẫn bạn cách cài đặt MariaDB bao gồm 3 bước sau:
* Cập nhật chỉ package của bạn chỉ bằng apt.
* Cài đặt gói máy chủ Mariadb bằng apt. 
* Chạy tập lệnh bảo mật mysql_secure_installation đi kèm để hạn chế quyền truy cập vào máy chủ.

```custom_prefix($)
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
```
Hướng dẫn này sẽ giải thích cách cài đặt MariaDB trên máy chủ Ubuntu 20.04 và xác minh rằng nó đang chạy và có cấu hình ban đầu an toàn.
## Điều kiện
Để làm theo hướng dẫn này, bạn sẽ cần một máy chủ chạy Ubuntu 20.04. Bạn phải có toàn quyền truy cập máy chủ này dưới vai trò non-root user có đặc quyền `sudo`. Và chắc chắn rằng tường lửa được định cấu hình bằng UFW. 
## Bước 1: Cài đặt MariaDB
Theo bài viết này, kho lưu trữ APT mặc định của Ubuntu 20.04 là MariaDB phiên bản 10.3.

Để cài đặt nó, hãy cập nhật chỉ mục gói trên máy chủ của bạn với apt:
```custom_prefix($)
sudo apt update
```
Cài đặt package:
```custom_prefix($)
sudo apt install mariadb-server
```
Đảm bảo rằng MariaDB đang chạy với lệnh bắt đầu `systemctl start`:
```custom_prefix($)
sudo systemctl start mariadb.service
```
Các lệnh này sẽ cài đặt và khởi động MariaDB, nhưng sẽ không nhắc bạn đặt mật khẩu hoặc thực hiện bất kỳ thay đổi cấu hình nào khác. Vì cấu hình mặc định khiến cho cài đặt MariaDB của bạn không an toàn, chúng tôi sẽ sử dụng tập lệnh mà `mariadb-server` cung cấp để hạn chế quyền truy cập vào máy chủ và xóa các tài khoản không sử dụng.

## Bước 2 - Định cấu hình MariaDB
Đối với cài đặt MariaDB mới, bước tiếp theo là chạy tập lệnh bảo mật đi kèm. Tập lệnh này thay đổi một số tùy chọn mặc định kém an toàn hơn cho những thứ như thông tin đăng nhập gốc từ xa và người dùng mẫu.

Chạy tập lệnh bảo mật:
```custom_prefix($)
sudo mysql_secure_installation
```
Thao tác này sẽ đưa bạn qua một loạt lời nhắc mà bạn có thể thực hiện một số thay đổi đối với các tùy chọn bảo mật của cài đặt MariaDB. Lời nhắc đầu tiên sẽ yêu cầu bạn nhập mật khẩu gốc của cơ sở dữ liệu hiện tại. Vì bạn chưa thiết lập một tài khoản nào, hãy nhấn `ENTER` để biểu thị “không có”.
```
[secondary_label 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 sẽ hỏi bạn liệu bạn có muốn thiết lập mật khẩu gốc của cơ sở dữ liệu hay không. Trên Ubuntu, tài khoản gốc cho MariaDB được gắn chặt với hệ thống bảo trì tự động,. Vì vậy chúng ta không nên thay đổi các phương thức xác thực đã định cấu hình cho tài khoản đó. Làm như vậy sẽ làm cho bản cập nhật gói có thể phá vỡ 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ị. Gõ `N` rồi nhấn `ENTER`.
```
[secondary_label 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<^>
```
Tiếp theo, chúng tôi sẽ trình bày cách thiết lập tài khoản quản trị bổ sung để truy cập mật khẩu nếu xác thực trên 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` rồi `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. Thao tác này sẽ xóa một số người dùng ẩn danh và cơ sở dữ liệu thử nghiệm, 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 triển khai các thay đổi bạn đã thực hiện.

Sau đó, 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à bước không bắt buộc, tuy nhiên bạn nên làm theo nếu muốn xác thực máy chủ MariaDB của mình bằng mật khẩu.
## Bước 3: Tạo người dùng quản trị sử dụng xác thực mật khẩu (không bắt buộc)
Trên hệ thống Ubuntu chạy MariaDB 10.3, người dùng MariaDB **root** được đặt để xác thực bằng  `unix_socket` theo mặc định thay vì bằng mật khẩu. Điều này cho phép một số bảo mật và khả năng sử dụng cao hơn trong nhiều trường hợp. Nhưng nó cũng có thể làm phức tạp mọi thứ khi bạn cần cho phép một chương trình bên ngoài (ví dụ: phpMyAdmin) quyền quản trị.

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

Để làm được điều nà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 định cấu hình để xác thực mật khẩu. Mở lời nhắc MariaDB từ thiết bị đầu cuối của bạn:
```custom_prefix($)
sudo mariadb
```
```custom_prefix()
GRANT ALL ON *.* TO '<^>admin<^>'@'localhost' IDENTIFIED BY '<^>password<^>' WITH GRANT OPTION;
```
Xóa các đặc quyền để đảm bảo rằng chúng được lưu và khả dụng trong phiên hiện tại:
```custom_prefix(MariaDP&npsp; [(none)]>)
FLUSH PRIVILEGES;
```
Sau đó, thoát khỏi trình duyệt MariaDB:
```custom_prefix(MariaDP&npsp; [(none)]>)
exit
```
Cuối cùng, hãy kiểm tra cài đặt MariaDB.
## Bước 4: Kiểm tra MariaDB
Khi được cài đặt từ kho lưu trữ mặc định, MariaDB sẽ bắt đầu chạy tự động. Để kiểm tra điều này, hãy kiểm tra trạng thái của nó.
```custom_prefix($)
sudo systemctl status mariadb
```
Bạn sẽ nhận được đầu ra tương tự như sau:
```
[secondary_label 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ể thử kết nối với cơ sở dữ liệu bằng công cụ `mysqladmin`, đây là một ứng dụng khách cho phép bạn chạy các lệnh quản trị. Ví dụ: lệnh này cho biết kết nối với MariaDB dưới dạng **root** bằng cách sử dụng Unix socket và trả về phiên bản:
```custom_prefix($)
sudo mysqladmin version
```
Bạn sẽ nhận được đầu ra tương tự như sau:
```
[secondary_label 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 đã thiết lập cấu hình một người dùng quản trị riêng biệt với việc xác thực bằng mật khẩu, bạn có thể thực hiện thao tác tương tự bằng cách nhập:
```custom_prefix($)
mysqladmin -u admin -p version
```
Điều này có nghĩa là MariaDB đang hoạt động và người dùng của bạn có thể xác thực thành công.

## Kết luận
Trong hướng dẫn 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 cách sử dụng tập lệnh `mysql_secure_installation` được cài đặt kèm theo. Bạn cũng có tùy chọn tạo người dùng quản trị mới sử dụng xác thực mật khẩu trước khi thử nghiệm chức năng của máy chủ MariaDB.
