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:
Để 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:
👉 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