Đây là bài viết về hướng dẫn install MariaDB 10.6 Ubuntu 22.04 LTS (Jammy Jellyfish). MariaDB là hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở được sử dụng bởi nhiều công ty nhỏ và lớn để đẩy mạnh ứng dụng của họ. Cơ sở dữ liệu MariaDB tập trung vào tính ổn định, bảo mật dữ liệu và hiệu suất. Một trong những lý do tại sao MariaDB được sử dụng rộng rãi là tính ổn định và khả năng mở rộng. MariaDB cũng là cơ sở dữ liệu mặc định trong hầu hết các bản phân phối Linux - Ubuntu, Debian, RHEL, CentOS, Rocky Linux, AlmaLinux cùng nhiều bản phân phối Linux khác.
Một số tính năng nổi bật của MariaDB 10.6
Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cách cài đặt đầy đủ MariaDB 10.6 trên Ubuntu 22.04 từ kho lưu trữ APT của MariaDB. Trên một phiên bản Ubuntu 22.04 mới cài đặt, các kho lưu trữ APT của hệ điều hành chứa gói MariaDB 10.5. MariaDB 10.6 là phiên bản ổn định hiện tại của MariaDB và có một số tính năng thú vị đáng chú ý:
- Ignored Indexes - Đây là các chỉ mục có thể nhìn thấy và duy trì nhưng không được tối ưu hóa sử dụng.
- JSON_TABLE() - Có thể tạo một bảng JSON sử dụng làm một truy vấn con từ tài liệu JSON.
- sys schema supported - Đây là một cơ sở dữ liệu "system" chứa các chế độ xem và thủ tục để điều tra vấn đề hiệu suất.
- Tương thích Oracle - MariaDB dần tương thích với OracleDB với một số cú pháp và chức năng của Oracle đã được thêm vào.
- SKIP LOCKED - Bỏ qua các bảng đã bị khóa để không cập nhật hoặc chọn.
- OFFSET...FETCH...[WITH TIES] - WITH TIES là một mệnh đề tùy chọn thêm chức năng bổ sung.
Install MariaDB 10.6 Ubuntu 22.04
Bước 1: Cập nhật/nâng cấp hệ thống
Để nâng cấp hệ điều hành Ubuntu và đảm bảo rằng nó được cập nhật mới nhất, bạn có thể làm theo các bước sau:
sudo apt update && sudo apt upgrade -y
Sau khi nâng cấp thành công, hãy thực hiện khởi động lại để sử dụng bộ gói mới trên hệ thống.
sudo systemctl reboot
Bước 2: Thêm kho lưu trữ MariaDB 10.6 APT
Để cài đặt gói software-properties-common, bạn có thể làm theo bước sau:
sudo apt install software-properties-common -y
Hiện tại, kho lưu trữ MariaDB 10.6 cho Ubuntu 22.04 chưa có sẵn theo thông tin cập nhật này. Chúng ta sẽ sử dụng kho lưu trữ của Ubuntu 20.04 (Focal Fossa) để thay thế.
Để cấu hình kho lưu trữ MariaDB APT và thêm chữ ký của MariaDB, bạn có thể thực hiện các lệnh dưới đây:
curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
sudo bash mariadb_repo_setup --os-type=ubuntu --os-version=focal --mariadb-server-version=10.6
Những lệnh này sẽ thêm kho lưu trữ và nhập chìa khóa lưu trữ GPG:
[info] Skipping OS detection and using OS type 'ubuntu' and version 'focal' given on the command line
[info] Checking for script prerequisites.
[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
Tệp lưu trữ APT của MariaDB nằm trong thư mục /etc/apt/sources.list.d:
$ cat /etc/apt/sources.list.d/mariadb.list
# MariaDB Server
# To use a different major version of the server, or to pin to a specific minor version, change URI below.
deb [arch=amd64,arm64] https://dlm.mariadb.com/repo/mariadb-server/10.6/repo/ubuntu focal main
deb [arch=amd64,arm64] https://dlm.mariadb.com/repo/mariadb-server/10.6/repo/ubuntu focal main/debug
# MariaDB MaxScale
# To use the latest stable release of MaxScale, use "latest" as the version
# To use the latest beta (or stable if no current beta) release of MaxScale, use "beta" as the version
deb [arch=amd64] https://dlm.mariadb.com/repo/maxscale/latest/apt focal main
# MariaDB Tools
deb [arch=amd64] http://downloads.mariadb.com/Tools/ubuntu focal main
Bước 3: Install MariaDB 10.6 Ubuntu 22.04
Khi cài đặt gói mariadb-client, bạn sẽ gặp thông báo lỗi. Đây là một số khả năng và giải pháp bạn có thể thử để khắc phục vấn đề:
mariadb-client-core-10.6 : Depends: libreadline5 (>= 5.2) but it is not installable
Giải pháp tạm thời là tải về và cài đặt gói libreadline5 cho Debian Buster:
wget http://ftp.us.debian.org/debian/pool/main/r/readline5/libreadline5_5.2+dfsg-3+b13_amd64.deb
sudo dpkg -i libreadline5_5.2+dfsg-3+b13_amd64.deb
Bước tiếp theo là cài đặt các gói MariaDB 10.6 Server và Client trên Ubuntu 22.04:
sudo apt update
sudo apt install mariadb-server mariadb-client
Đồng ý tiếp tục cài đặt MariaDB 10.6 trên Ubuntu 22.04:
The following NEW packages will be installed:
galera-4 gawk libaio1 libcgi-fast-perl libcgi-pm-perl libdaxctl1 libdbd-mariadb-perl libdbi-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-template-perl libmariadb3 libmysqlclient21
libndctl6 libpmem1 libsigsegv2 libterm-readkey-perl mariadb-client mariadb-client-10.6 mariadb-client-core-10.6 mariadb-common mariadb-server mariadb-server-10.6 mariadb-server-core-10.6
mysql-common socat
0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.5 MB of archives.
After this operation, 230 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Đảm bảo dịch vụ MariaDB được thiết lập để khởi động cùng hệ thống:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Kiểm tra trạng thái dịch vụ MariaDB:
$ systemctl status mariadb
● mariadb.service - MariaDB 10.6.5 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mariadb.service.d
└─migrated-from-my.cnf-settings.conf
Active: active (running) since Thu 2021-11-11 16:42:12 EAT; 3min 28s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Process: 8195 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Process: 8196 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 8198 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_PO>
Process: 8261 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 8263 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Main PID: 8245 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 9 (limit: 9482)
Memory: 72.2M
CPU: 1.152s
CGroup: /system.slice/mariadb.service
└─8245 /usr/sbin/mariadbd
....
Bước 4: Bảo mật máy chủ cơ sở dữ liệu MariaDB
Chạy mariadb-secure-installation để bật tính năng bảo mật bổ sung cho máy chủ MariaDB của bạn:
$ sudo mariadb-secure-installation
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
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
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.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
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!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
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!
Kết nối vào Shell của MariaDB bằng cách xác thực với mật khẩu root đã được đặt trước đó:
$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.6.5-MariaDB-1:10.6.5+maria~focal 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)]>
Chạy lệnh sau để kiểm tra phiên bản MariaDB:
MariaDB [(none)]> SELECT VERSION();
+--------------------------------------+
| VERSION() |
+--------------------------------------+
| 10.6.5-MariaDB-1:10.6.5+maria~focal |
+--------------------------------------+
1 row in set (0.000 sec)
MariaDB [(none)]> QUIT
Bye
Bước 5: Các ví dụ sử dụng MariaDB cơ bản
Dưới đây là một số ví dụ về cách tương tác với máy chủ cơ sở dữ liệu MariaDB từ dòng lệnh:
Tạo cơ sở dữ liệu:
# Create a database named db1
MariaDB [(none)]> CREATE DATABASE db1;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> SHOW DATABASES;
Tạo một người dùng cơ sở dữ liệu và cấp đặc quyền:
#Create database user called myuser
MariaDB [(none)]> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
#Grant all privileges to the user
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
#Grant privileges to a specific database
MariaDB [(none)]> GRANT ALL PRIVILEGES ON 'DB1'.* TO 'user1'@'localhost';
#Remember to refresh the privileges
MariaDB [(none)]> FLUSH privileges;
#To check user grants in MariaDB
MariaDB [(none)]> SHOW GRANTS FOR 'myuser'@'localhost';
Tạo bảng và thêm dữ liệu MariaDB:
Sau khi bạn đã tạo cơ sở dữ liệu, bạn có thể tạo bảng và thêm dữ liệu vào đó:
MariaDB [(none)]> CREATE TABLE friends (id INT, name VARCHAR(20), email VARCHAR(20));
MariaDB [(none)]> INSERT INTO friends (id,name,email) VALUES(01,"John Kirui","john.kirui@example.com"
Mọi người cũng tìm kiếm: install mariadb ubuntu 22.04, mariadb ubuntu 22.04, libreadline5 ubuntu 22.04