Cài đặt MariaDB trên Debian 10
MariaDB là một hệ thống quản lý cơ sở dữ liệu mã nguồn mở (DBMS), thường được sử dụng như một sự thay thế cho phần MySQL trong ngăn xếp LAMP (Linux, Apache, MySQL, PHP/Python/Perl) phổ biến. Nó được thiết kế để thay thế trực tiếp MySQL và Debian hiện đã chỉ cung cấp các gói MariaDB. Nếu cài đặt các gói liên quan đến máy chủ MySQL, bạn sẽ nhận được phiên bản tương thích của MariaDB thay thế.
Phiên bản ngắn gọn của hướng dẫn cài đặt gồm ba bước sau:
- Cập nhật chỉ mục gói tin bằng lệnh
apt
- Cài đặt gói
mariadb-server
bằng lệnhapt
. Gói cũng sẽ cài đặt các công cụ liên quan để tương tác với MariaDB. - Chạy kịch bản 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 phiên bản 10.3 trên một máy chủ Debian 10 và kiểm tra xem nó đã hoạt động và có cấu hình ban đầu an toàn.
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, bạn cần một máy chủ Debian 10 đã được thiết lập với một người dùng không phải là root có đặc quyền sudo và một tường lửa. Bạn làm theo hướng dẫn thiết lập máy chủ ban đầu của chúng tôi.
Bước 1 — Cài đặt MariaDB
Trên Debian 10, phiên bản 10.3 của MariaDB bao gồm trong kho lưu trữ gói APT theo mặc định. Nó được đánh dấu là biến thể MySQL mặc định bởi gói nhóm MySQL/MariaDB của Debian.
Để cài đặt, cập nhật chỉ mục gói trên máy chủ bằng lệnh apt:
sudo apt update
Sau đó cài đặt gói:
sudo apt install mariadb-server
Các lệnh sẽ cài đặt MariaDB, nhưng không yêu cầu 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 để lại cài đặt MariaDB không an toàn, bạn sẽ sử dụng một kịch bản mà gói mariadb-server cung cấp để 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
Đối với cài đặt MariaDB mới, bước tiếp theo là chạy kịch bản bảo mật đi kèm. Cú pháp này sẽ thay đổi một số tùy chọn mặc định ít an toàn. Chúng ta sử dụng nó để chặn đăng nhập root từ xa và loại bỏ các người dùng cơ sở dữ liệu không sử dụng.
Chạy tập lệnh bảo mật sau đây:
sudo mysql_secure_installation
Điều này sẽ yêu cầu bạn qua một loạt các lời nhắc, trong đó bạn thay đổi các tùy chọn bảo mật cho cài đặt MariaDB của mình. Lời nhắc đầu tiên sẽ yêu cầu bạn nhập mật khẩu root cơ sở dữ liệu hiện tại. Vì bạn chưa thiết lập mật khẩu, nhấn ENTER để chỉ định "none" (không có mật khẩu).
Lời nhắc tiếp theo sẽ hỏi bạn có muốn thiết lập mật khẩu root cơ sở dữ liệu hay không. Gõ N
và sau đó nhấn ENTER
. Trong Debian, 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 bạn không nên thay đổi các phương pháp xác thực được cấu hình cho tài khoản đó. Việc làm điều này có thể khiến một bản cập nhật gói phá vỡ hệ thống cơ sở dữ liệu bằng cách gỡ bỏ quyền truy cập vào tài khoản quản trị. Sau đó, chúng ta sẽ tìm hiểu cách tùy chọn 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 phương thức 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ẽ loại bỏ 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 áp dụng các thay đổi bạn đã thực hiện.
Bước 3 — (Tùy chọn) Điều chỉnh xác thực và đặc quyền người dùng
Trong các hệ thống Debian chạy MariaDB 10.3, người dùng root của MariaDB được cấu hình để xác thực bằng plugin unix_socket
mặc định thay vì sử dụng mật khẩu. Điều này cho phép tăng cường bảo mật và khả năng sử dụng trong nhiều trường hợp, nhưng cũng có thể làm phức tạp các vấn đề khi 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 cho các nhiệm vụ như xoay log, khởi động và dừng máy chủ, tốt nhất là không thay đổi chi tiết xác thực của tài khoản root. Thay đổi thông tin đăng nhập trong tệp cấu hình /etc/mysql/debian.cnf
hoạt động ban đầu, nhưng các cập nhật gói ghi đè lên những thay đổi đó. Thay vì sửa đổi tài khoản root, các nhà quản lý gói đề xuất tạo một tài khoản quản trị riêng biệt cho việc truy cập dựa trên mật khẩu.
Để minh họa quá trình này, chúng ta sẽ tạo một tài khoản mới có tên là admin. Tài khoản này có 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. Đầu tiên, mở giao diện MariaDB shell từ cửa sổ terminal của bạn:
sudo mysql
Tiếp theo, tạo một người dùng mới có đặc quyền root và truy cập dựa trên mật khẩu. Thay đổi tên người dùng và mật khẩu để phù hợp với sở thích:
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Xóa các đặc quyền để đảm bảo chúng được lưu và có sẵn trong phiên hiện tại:
FLUSH PRIVILEGES;
Sau đó, thoát khỏi giao diện MariaDB shell:
exit Output Bye
Bước 4 — Kiểm tra MariaDB
Khi cài đặt từ kho lưu trữ mặc định, MariaDB sẽ tự động chạy. Kiểm tra trạng thái của điều trên:
sudo systemctl status mariadb
Đầu ra sẽ tương tự như sau:
Output ● mariadb.service - MariaDB 10.3.31 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: Active: active (running) since Mon 2022-03-14 18:33:32 UTC; 2min 2s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 3229 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 4915) Memory: 74.4M CGroup: /system.slice/mariadb.service └─3229 /usr/sbin/mysqld Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: performance_schema Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Phase 6/7: Checking and u Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Running 'mysqlcheck' with Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: # Connecting to localhost Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: # Disconnecting from loca Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Processing databases Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: information_schema Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: performance_schema Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Phase 7/7: Running 'FLUSH Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: OK
Nếu MariaDB không chạy, bạn khởi động bằng lệnh sudo systemctl start mariadb
.
Để kiểm tra thêm, bạn kết nối vào cơ sở dữ liệu bằng công cụ mysqladmin
, một khách hàng cho phép bạn chạy các lệnh quản trị. Ví dụ, lệnh sau kết nối với MariaDB dưới dạng root và trả về phiên bản bằng cách sử dụng Unix socket:
sudo mysqladmin version
Kết quả sẽ tương tự như dưới đây:
Output mysqladmin Ver 9.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.3.31-MariaDB-0+deb10u1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 3 min 6 sec Threads: 6 Questions: 473 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 2.543
Nếu đã cấu hình một người dùng quản trị riêng biệt với xác thực mật khẩu, thực hiện cùng một thao tác bằng cách chạy lệnh sau:
mysqladmin -u admin -p version
Output Ver 9.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.3.31-MariaDB-0+deb10u1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 7 min 11 sec Threads: 6 Questions: 474 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 1.099
Từ kết quả cho biết MariaDB đã được khởi động và hoạt động, người dùng xác thực thành công.
Kết luận
Như vậy, bạn đã cài đặt MariaDB để hoạt động như một máy chủ SQL. Trong quá trình cài đặt, đã đồng thời bảo mật máy chủ.
Mọi người cũng tìm kiếm: install mariadb debian 10