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ủ.
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:
Cài đặt package:
Đảm bảo rằng MariaDB đang chạy với lệnh bắt đầu systemctl start
:
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:
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ó”.
OutputNOTE: 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
.
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:
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:
Sau đó, thoát khỏi trình duyệt MariaDB:
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ó.
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ể 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:
Bạn sẽ nhận được đầu ra tương tự như sau:
Outputmysqladmin 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:
Đ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.