Cài đặt MariaDB 11 Debian 11 - Install MariaDB 11 Debian 11

MariaDB 11.0 là một hệ thống cơ sở dữ liệu quan hệ mã nguồn mở rất phổ biến, có sẵn trong các kho lưu trữ tiêu chuẩn của tất cả các bản phân phối Linux chính thức. Hướng dẫn này sẽ không đi vào nhiều lý thuyết giới thiệu mà sẽ chủ yếu tập trung vào những cải tiến mới trong MariaDB 11.0. MariaDB 11.0 đã chính thức được phát hành vào tháng 2 năm 2023 và là chuỗi phát triển hiện tại của MariaDB với sự tiến hóa từ MariaDB 10.11. Hãy cùng xem qua cách cài đặt MariaDB Debian 11 ngay bên dưới nhé.

Những tính năng đáng chú ý trong MariaDB 11

Như đã nói ở trên, MariaDB 11.0 là một sự tiến hóa từ MariaDB 10.11. Tuy nhiên, có nhiều cải tiến trong bộ tối ưu hóa. Một số tính năng đáng chú ý bao gồm các điểm sau:

  • Trong MariaDB 11.0, Docker image chính thức không còn bao gồm các liên kết thực thi tương thích với MySQL được đặt tên bên trong container nữa.
  • Đối với các gói, những liên kết tương thích với MySQL không còn được cài đặt trong gói lõi mà đã được giao cho một gói nhỏ gọn.
  • Cải tiến bộ tối ưu hóa.
  • Các biến sau đã bị lỗi thời: innodb_defragment, innodb_defragment_n_pages, innodb_defragment_stats_accuracy, innodb_defragment_fill_factor_n_recs, innodb_defragment_fill_factor, innodb_defragment_frequency, innodb_file_per_table và innodb_flush_method.
  • Các biến sau đã bị loại bỏ: innodb_change_buffer_max_size, innodb_change_buffering, bộ đệm pool InnoDB.
  • Không hỗ trợ nâng cấp sau một sự cố gặp phải.
  • Việc tắt InnoDB bị treo khi bộ đệm thay đổi bị hỏng.
  • TRUNCATE làm hỏng khóa FOREIGN KEY.
  • Đã thêm kho lưu trữ cho Fedora 37 và Ubuntu 22.10 Kinetic.
  • Các biến mới đã được thêm vào MariaDB 11.0.
  • Giá trị mặc định cho innodb_undo_tablespaces đã thay đổi từ 0 thành 3.

Cách cài đặt MariaDB Debian 11

Bắt đầu bằng việc cập nhật chỉ mục bộ nhớ cache APT của Debian 11.

sudo apt update && sudo apt upgrade

Như đã nhấn mạnh ở phần giới thiệu, các kho lưu trữ tiêu chuẩn của MariaDB có sẵn trong tất cả các bản phân phối Linux chính thức. Xác nhận điều này bằng lệnh sau:

$ apt policy mariadb-server
mariadb-server:
  Installed: (none)
  Candidate: 1:10.5.18-0+deb11u1
  Version table:
     1:10.5.18-0+deb11u1 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages

Phiên bản hiện có dựa trên đầu ra kho lưu trữ đã lỗi thời, điều này đồng nghĩa với việc phiên bản này đã bỏ lỡ các cải tiến trong MariaDB 11.0. Để cài đặt MariaDB 11.0, thực hiện các bước dưới đây:

Bước 1: Thêm kho lưu trữ APT MariaDB 11.0 

Để thêm kho lưu trữ APT của MariaDB, thực hiện lệnh sau trên cửa sổ terminal:

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=11.0

Đầu ra của lệnh:

# [info] Checking for script prerequisites.
# [info] MariaDB Server version 11.0 is valid
# [info] Repository file successfully written to /etc/apt/sources.list.d/mariadb.list
# [info] Adding trusted package signing keys...
# [info] Running apt-get update...
# [info] Done adding trusted package signing keys

Hãy đảm bảo cập nhật hệ thống của bạn để làm mới các gói apt. Điều này cũng giúp bạn kiểm tra xem kho lưu trữ APT đã được thêm thành công hay chưa. Chạy lệnh dưới đây:

$ sudo apt update
Hit:1 http://security.debian.org/debian-security bullseye-security InRelease
Hit:2 http://deb.debian.org/debian bullseye InRelease 
Hit:3 http://deb.debian.org/debian bullseye-updates InRelease 
Hit:4 http://deb.debian.org/debian bullseye-backports InRelease 
Hit:5 https://downloads.mariadb.com/Tools/debian bullseye InRelease 
Get:6 https://dlm.mariadb.com/repo/mariadb-server/11.0/repo/debian bullseye InRelease [4622 B] 
Get:7 https://dlm.mariadb.com/repo/maxscale/latest/apt bullseye InRelease [9353 B]
Fetched 14.0 kB in 1s (17.2 kB/s) 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

Từ kết quả đầu ra, kho lưu trữ mariadb-server/11.0/repo đã được thêm thành công.

Bước 2: Cài đặt các gói MariaDB 11

Bước tiếp theo là cài đặt các gói MariaDB Debian 11. Thực hiện điều này bằng cách thực hiện lệnh sau:

sudo apt install mariadb-server mariadb-client mariadb-backup

Đồng ý với lời nhắc cài đặt bằng cách nhập Y và nhấn phím Enter trên bàn phím.

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  galera-4 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl
  libdaxctl1 libdbd-mariadb-perl libdbi-perl libfcgi-bin libfcgi-perl
  libfcgi0ldbl libhtml-template-perl libmariadb3 libndctl6 libpmem1
  libsigsegv2 libterm-readkey-perl mariadb-client-compat mariadb-client-core
  mariadb-common mariadb-server-compat mariadb-server-core mysql-common pv
  rsync socat
Suggested packages:
  gawk-doc libmldbm-perl libnet-daemon-perl libsql-statement-perl
  libipc-sharedcache-perl mailx mariadb-test netcat-openbsd doc-base
The following NEW packages will be installed:
  galera-4 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl
  libdaxctl1 libdbd-mariadb-perl libdbi-perl libfcgi-bin libfcgi-perl
  libfcgi0ldbl libhtml-template-perl libmariadb3 libndctl6 libpmem1
  libsigsegv2 libterm-readkey-perl mariadb-backup mariadb-client
  mariadb-client-compat mariadb-client-core mariadb-common mariadb-server
  mariadb-server-compat mariadb-server-core mysql-common pv rsync socat
0 upgraded, 29 newly installed, 0 to remove and 0 not upgraded.
Need to get 36.7 MB of archives.
After this operation, 281 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y

Hãy kiên nhẫn khi chạy lệnh để cài đặt MariaDB-server, MariaDB-client và MariaDB-backup. Theo tùy chọn, bạn có thể cài đặt MariaDB MaxScale trên Debian 11 bằng lệnh sau:

sudo apt install maxscale

Để kiểm tra các gói đã được cài đặt, sử dụng lệnh sau:

$ apt info mariadb-server -a
Package: mariadb-server
Version: 1:11.0.1+maria~deb11
Priority: optional
Section: database
Source: mariadb
Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net>
Installed-Size: 55.5 MB
Provides: default-mysql-server, virtual-mysql-server

$ apt info mariadb-client -a
Package: mariadb-client
Version: 1:11.0.1+maria~deb11
Priority: optional
Section: database
Source: mariadb
Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net>
Installed-Size: 64.4 MB
Provides: default-mysql-client, virtual-mysql-client

$ apt info maxscale
Package: maxscale
Version: 23.02.1~bullseye-1
Priority: optional
Section: devel
Maintainer: MariaDB Corporation Ab
Installed-Size: 689 MB

Để đảm bảo rằng chúng ta đã cài đặt MariaDB 11.0, sử dụng lệnh policy như dưới đây:

$ apt policy mariadb-server
mariadb-server:
  Installed: 1:11.0.1+maria~deb11
  Candidate: 1:11.0.1+maria~deb11
  Version table:
 *** 1:11.0.1+maria~deb11 1000
       1000 https://dlm.mariadb.com/repo/mariadb-server/11.0/repo/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status
     1:10.5.18-0+deb11u1 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages

Bước 3: Quản lý MariaDB thông qua Systemd

Sau khi bạn đã cài đặt MariaDB thành công, các dịch vụ của nó cần được quản lý bởi systemd. Thực hiện các lệnh dưới đây.

Khởi động dịch vụ MariaDB:

sudo systemctl start mariadb.service

Kích hoạt MariaDB để sẵn sàng trong lần khởi động tiếp theo.

sudo systemctl enable mariadb.service

Xác nhận trạng thái của cài đặt.

$ systemctl status mariadb.service
● mariadb.service - MariaDB 11.0.1 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor prese>
    Drop-In: /etc/systemd/system/mariadb.service.d
             └─migrated-from-my.cnf-settings.conf
     Active: active (running) since Fri 2023-04-14 00:30:48 EAT; 17min ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 33364 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 8 (limit: 4662)
     Memory: 219.2M
        CPU: 523ms
     CGroup: /system.slice/mariadb.service
             └─33364 /usr/sbin/mariadbd

Apr 14 00:30:48 debian-11-lab mariadbd[33364]: 2023-04-14 0:30:48 0 [Note] Inn>
Apr 14 00:30:48 debian-11-lab mariadbd[33364]: 2023-04-14 0:30:48 0 [Note] Inn>
Apr 14 00:30:48 debian-11-lab mariadbd[33364]: 2023-04-14 0:30:48 0 [Note] Plu>
Apr 14 00:30:48 debian-11-lab mariadbd[33364]: 2023-04-14 0:30:48 0 [Note] Plu>
Apr 14 00:30:48 debian-11-lab mariadbd[33364]: 2023-04-14 0:30:48 0 [Note] Ser>
Apr 14 00:30:48 debian-11-lab mariadbd[33364]: 2023-04-14 0:30:48 0 [Note] Inn>
Apr 14 00:30:48 debian-11-lab mariadbd[33364]: 2023-04-14 0:30:48 0 [Note] /us>
Apr 14 00:30:48 debian-11-lab mariadbd[33364]: Version: '11.0.1-MariaDB-1:11.0.>
Apr 14 00:30:48 debian-11-lab systemd[1]: Started MariaDB 11.0.1 database serve>
Apr 14 00:30:48 debian-11-lab /etc/mysql/debian-start[33391]: Upgrading MySQL t>
lines 1-25

Bước 4: Bảo mật quá trình cài đặt MariaDB Debian 11

Việc cải thiện bảo mật cho cài đặt MariaDB là điều cần thiết để chỉ có người dùng đã xác thực mới có quyền truy cập vào cơ sở dữ liệu. Điều này có thể được thực hiện qua một số cách:

  • Bằng cách đặt mật khẩu cho các tài khoản root.
  • Bằng cách loại bỏ các tài khoản root có thể truy cập từ bên ngoài máy chủ cục bộ.
  • Bằng cách loại bỏ các tài khoản người dùng ẩn danh.
  • Bằng cách loại bỏ cơ sở dữ liệu thử nghiệm, mà theo mặc định có thể được truy cập bởi người dùng ẩn danh.
  • Bằng cách làm như vậy, bạn sẽ đảm bảo chỉ có bạn mới có quyền truy cập vào MariaDB. mariadb-secure-installation là một tập lệnh shell có sẵn trên hệ thống Unix để giúp bạn cải thiện bảo mật cài đặt MariaDB/MySQL.

Chạy lệnh trên cửa sổ terminal của bạn như dưới đây:

sudo mariadb-secure-installation

Đầu ra:

$ sudo mariadb-secure-installation
Enter current password for root (enter for none): <ENTER>
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
Switch to unix_socket authentication [Y/n] n
... skipping.
Change the root password? [Y/n] Y
New password: <StrongPassword>
Re-enter new password: <StrongPassword>
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
... Success!
Disallow root login remotely? [Y/n] Y
... Success!
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
Reload privilege tables now? [Y/n] Y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

mariadb-secure-installation chấp nhận một số tùy chọn như được trích dẫn dưới đây từ trang web chính thức của MariaDB:

Cài đặt MariaDB 11 Debian 11 - Install MariaDB 11 Debian 11

Để truy cập vào shell root của MySQL, nhập lệnh dưới đây:

$ mariadb -u root -p

Đầu ra của lệnh:

Enter password: <StrongPassword>
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 69
Server version: 11.0.1-MariaDB-1:11.0.1+maria~deb11 mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Sau khi bạn đã đăng nhập thành công, bạn có thể bắt đầu bằng việc kiểm tra trạng thái cơ sở dữ liệu. Thực hiện lệnh dưới đây:

MariaDB [(none)]> \s
--------------
mariadb from 11.0.1-MariaDB, client 15.2 for debian-linux-gnu (x86_64) using readline EditLine wrapper

Connection id: 69
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 11.0.1-MariaDB-1:11.0.1+maria~deb11 mariadb.org binary distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb3
Conn. characterset: utf8mb3
UNIX socket: /run/mysqld/mysqld.sock
Uptime: 18 hours 4 min 24 sec

Threads: 1 Questions: 102 Slow queries: 0 Opens: 33 Open tables: 26 Queries per second avg: 0.001
--------------

MariaDB [(none)]>

Liệt kê các cơ sở dữ liệu có sẵn:

 > show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.000 sec)

Chúng ta chưa có cơ sở dữ liệu nào, để tạo một cơ sở dữ liệu mẫu, thực hiện lệnh sau:

> CREATE DATABASE SAMPLE_DB;
Query OK, 1 row affected (0.000 sec)

Sử dụng DB đã tạo:

> use SAMPLE_DB;
Database changed

Tạo người dùng mẫu:

> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'Passw0rd';
Query OK, 0 rows affected (0.002 sec)

Cấp quyền cho người dùng thử nghiệm.

> GRANT ALL PRIVILEGES ON SAMPLE_DB.* to 'admin'@'localhost' IDENTIFIED BY 'Passw0rd' WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)

Xóa các đặc quyền:

> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)

Hiển thị các đặc quyền:

> SHOW GRANTS FOR 'admin'@'localhost';
+--------------------------------------------------------------------------------------------------------------+
| Grants for admin@localhost |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `admin`@`localhost` IDENTIFIED BY PASSWORD '*1114CDA5E6E3C382919BCF0D858DD97EB8254812' |
| GRANT ALL PRIVILEGES ON `SAMPLE_DB`.* TO `admin`@`localhost` WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

Tạo bảng mẫu:

> CREATE TABLE course (code INT, name VARCHAR(25), day VARCHAR(15));
Query OK, 0 rows affected (0.007 sec)

Thêm dữ liệu vào bảng mẫu:

> INSERT INTO course (code,name,day) VALUES(001,"Maths","Monday");
Query OK, 1 row affected (0.001 sec)

Để cấp quyền truy cập từ xa (ví dụ: máy chủ Ubuntu chạy trên địa chỉ IP 192.168.201.12) cho người dùng admin vào tất cả các cơ sở dữ liệu, thực hiện lệnh sau:

> GRANT ALL ON *.* to 'admin'@'192.168.201.12' IDENTIFIED BY 'Passw0rd' WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)

Thoát khỏi cơ sở dữ liệu:

EXIT;

Bước 5: Cấu hình máy chủ cơ sở dữ liệu MariaDB

Tập tin cấu hình mặc định cho MariaDB là /etc/mysql/mariadb.conf.d/50-server.cnf. Trong tập tin cấu hình này, bạn có thể thiết lập một số điều như bind-address, ghi nhật ký và sao lưu, SSL/TLS, bộ mã hóa và nhiều hơn nữa. Theo mặc định, MariaDB được cấu hình chỉ để nghe trên localhost.

Để cấu hình MariaDB chấp nhận kết nối trên tất cả các máy chủ, thay đổi giá trị của bind-address từ 127.0.0.1 thành 0.0.0.0 để máy chủ MariaDB chấp nhận kết nối trên tất cả các giao diện host IPv4.

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 0.0.0.0

Hoặc bạn có thể thực hiện lệnh sau để đạt được mục tiêu tương tự:

sudo sed -i 's/127.0.0.1/0.0.0.0/' /etc/mysql/mariadb.conf.d/50-server.cnf

Bạn cũng có thể cấu hình một vị trí khác để lưu trữ nhật ký. Theo mặc định, các bản ghi lỗi được định tuyến đến vị trí này:

log_error = /var/log/mysql/error.log

Thay vì "Skip Networking" như trong các phiên bản MariaDB trước đó, trong MariaDB 11, mặc định hiện tại là chỉ lắng nghe trên localhost, điều này tương thích hơn và an toàn hơn.

Một cấu hình quan trọng khác là thiết lập kết nối bảo mật cho máy khách và máy chủ bằng TLS. Theo mặc định, MariaDB truyền dữ liệu giữa máy chủ và máy khách mà không mã hóa nếu máy chủ và máy khách đang cùng một máy chủ.

Nhưng nếu máy chủ và máy khách đang ở các máy chủ hoặc mạng khác nhau, kết nối này có thể không an toàn và gây ra các vấn đề về bảo mật. Vì một bên tấn công độc hại có thể nghe trộm dữ liệu khi nó được gửi qua mạng giữa chúng.

Để giảm thiểu lỗ hổng bảo mật này, MariaDB cho phép bạn mã hóa dữ liệu khi nó trao đổi giữa máy chủ và máy khách. Điều này được thực hiện thông qua Transport Layer Security (TLS).

Với TLS, đảm bảo cả máy chủ và máy khách đều có chứng chỉ X509, khóa riêng tư và chuỗi Certificate Authority (CA) để xác minh chứng chỉ X509 máy chủ cho giao thức TLS hai chiều. Để kích hoạt TLS, hãy tuân theo hướng dẫn.

Khi đã thực hiện tất cả các cấu hình cần thiết trong tệp cấu hình, chạy lệnh sau để khởi động lại dịch vụ MariaDB:

sudo systemctl restart mariadb.service

Bước 6: Cấu hình tường lửa

Theo mặc định, MariaDB sẽ nghe trên cổng 3306. Nếu máy chủ MariaDB của bạn được cấu hình với tường lửa UFW, bạn cần phải cho phép lưu lượng trên cổng 3306 từ hệ thống từ xa.

Chạy lệnh như sau:

sudo apt install ufw
sudo ufw allow 3306

Tiếp theo, tải lại tường lửa bằng lệnh sau:

sudo ufw enable
sudo ufw reload

Xác nhận trạng thái:

$ sudo ufw status
Status: active

To Action From
-- ------ ----
3306 ALLOW Anywhere 
3306 (v6) ALLOW Anywhere (v6)

Trong hướng dẫn này, chúng ta đã tìm hiểu cách cài đặt MariaDB Debian 11. Chúng ta đã phân tích một số tính năng trong MariaDB 11.0, hướng dẫn cách cài đặt MariaDB 11.0 trên hệ thống Linux Debian, cách bảo mật cài đặt MariaDB, một số cấu hình và cách cấu hình tường lửa. Hy vọng hướng dẫn này giúp bạn hiểu cách kết nối ứng dụng web với cơ sở dữ liệu được lưu trữ trên máy chủ từ xa và cách bảo mật nó một cách chính xác với hạn chế IP.

Mọi người cũng tìm kiếm: mariadb 11, mariadb debian 11, install mariadb 11, install mariadb debian 11

Các gói dịch vụ Cloud VPS của KDATA mang đến cho bạn nhiều lựa chọn về hiệu suất cũng như khả năng lưu trữ, mọi nhu cầu về doanh nghiệp đều được đáp ứng. KDATA đảm bảo khả năng uptime lên đến 99,99%, toàn quyền quản trị và free backup hằng ngày. Tham khảo ngay các gói dịch vụ Cloud VPS:

https://kdata.vn/cloud-vps

👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất