MariaDB is an open source, enterprise-grade relational database management system initially forked from Oracle’s MySQL project. Similar to MySQL, MariaDB has gained popularity since its release as a result of its robustness, stability and community commitment to its development. MariaDB maintains high compatibility with MySQL with library binary parity and exact API and commands matching with MySQL. In this blog post we shall cover all steps required to install and use MariaDB 10.7 on Kali Linux rolling Linux distribution.
Some of the new features and improvements in MariaDB 10.7 release are:
- New UUID Data Type – There is a new UUID data type aimed at the storage of 128-bit UUID (Universally Unique Identifier) data.
- Natural Sort – To be used in ordering of strings in alphabetical order
- New SFORMAT function that uses Python-like (or Rust-like, C++20 like) format
- Updates in InnoDB – Improvements and features in the MariaDB InnoDB storage engine
- Addition of Provider Plugins – New provider plugins (bzip2, lzma, lz4, lzo, snappy) for compression functionalities.
- InnoDB Bulk Insert – In bulk insert, pre-sort and build indexes one page at a time
- Password Reuse – The password_reuse_check plugin is a new password validation plugin
- Diagnostics Property – Used to identify the affected row
- And many more
Follow the steps in the next sections to install and run MariaDB 10.7 on Kali Linux.
Step 1 – Update your Kali Linux system
Update package lists in configured sources by running the following commands:
$ sudo apt update [sudo] password for jkmutai: Hit:1 http://ftp.halifax.rwth-aachen.de/kali kali-rolling InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.
If updates are available apply them by performing upgrades on all of them. A reboot is required if
/var/run/reboot-required file exists after update.
sudo apt dist-upgrade -y [ -f /var/run/reboot-required ] && sudo reboot -f
Step 2 – Add MariaDB 10.7 repository to Kali Linux
Install dependency packages to support repository management on Kali Linux and any other Debian based system.
sudo apt update sudo apt install wget curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates
Download MariaDB script used to configure repositories on supported Linux OS.
The script usage help page can be checked with the commands below;
$ bash mariadb_repo_setup --help ... Options: --help Display this help and exit. --version Output the script version and exit. --mariadb-server-version=<version> Override the default MariaDB Server version. By default, the script will use 'mariadb-10.7'. --mariadb-maxscale-version=<version> Override the default MariaDB MaxScale version. By default, the script will use 'latest'. --os-type=<type> Override detection of OS type. Acceptable values include 'debian', 'ubuntu', 'rhel', & sles'. --os-version=<version> Override detection of OS version. Acceptable values depend on the OS type you specify. --arch=<architecture> Override detection of CPU architecture. Acceptable values are 'x86_64', 'aarch64', 'amd64', & 'arm64'. --skip-key-import Skip importing GPG signing keys. --skip-maxscale Skip the 'MaxScale' repository. --skip-server Skip the 'MariaDB Server' repository. --skip-tools Skip the 'Tools' repository. --skip-check-installed Skip tests for required prerequisites for this script. --write-to-stdout Write output to stdout instead of to the OS's repository configuration. This will also skip importing GPG keys and updating the package cache on platforms where that behavior exists.
Kali Linux is not in the list of Linux distributions supported by the script. We have to provide OS type and Version in command options. Debian 11 (Bullseye) repository will be configured in our Kali Linux system.
$ sudo bash mariadb_repo_setup --os-type=debian --os-version=bullseye --mariadb-server-version=10.7 # [info] Skipping OS detection and using OS type 'debian' and version 'bullseye' as given on the command line # [info] Checking for script prerequisites. # [info] MariaDB Server version 10.7 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
A new file is written by the script. This is the repo for MariaDB configured on Kali Linux.
Confirm the repository is functional before you proceed to install MariaDB 10.7 on Kali Linux.
$ sudo apt update Hit:1 https://downloads.mariadb.com/Tools/debian bullseye InRelease Hit:2 http://ftp.halifax.rwth-aachen.de/kali kali-rolling InRelease Get:3 https://dlm.mariadb.com/repo/mariadb-server/10.7/repo/debian bullseye InRelease [4634 B] Get:4 https://dlm.mariadb.com/repo/maxscale/latest/apt bullseye InRelease [6387 B] Fetched 11.0 kB in 1s (12.2 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 4 packages can be upgraded. Run 'apt list --upgradable' to see them.
Step 3 – Install MariaDB 10.7 to Kali Linux
Check available versions of MariaDB listed on configured repositories. You should spot 10.7 release.
$ apt-cache policy mariadb-server mariadb-server: Installed: (none) Candidate: 1:10.7.3+maria~bullseye Version table: 1:10.7.3+maria~bullseye 1000 1000 https://dlm.mariadb.com/repo/mariadb-server/10.7/repo/debian bullseye/main amd64 Packages 1000 https://dlm.mariadb.com/repo/mariadb-server/10.7/repo/debian bullseye/main arm64 Packages 1:10.7.1+maria~bullseye 1000 1000 https://dlm.mariadb.com/repo/mariadb-server/10.7/repo/debian bullseye/main amd64 Packages 1000 https://dlm.mariadb.com/repo/mariadb-server/10.7/repo/debian bullseye/main arm64 Packages 1:10.6.5-2 500 500 http://http.kali.org/kali kali-rolling/main amd64 Packages
Let’s now install MariaDB 10.7 Server and Client packages on Kali Linux
sudo apt install mariadb-server mariadb-client
Fixing error “mariadb-server-core-10.7 : Depends: liburing1 (>= 0.7)“
If you encounter an error similar to below;
The following packages have unmet dependencies: mariadb-server-core-10.7 : Depends: liburing1 (>= 0.7) but it is not installable E: Unable to correct problems, you have held broken packages.
Manually download and install
liburing1 package with version >=0.7
Install the package after being downloaded locally on Kali Linux system.
$ sudo dpkg -i liburing1_0.7-3~bpo10+1_amd64.deb Selecting previously unselected package liburing1:amd64. (Reading database ... 290741 files and directories currently installed.) Preparing to unpack liburing1_0.7-3~bpo10+1_amd64.deb ... Unpacking liburing1:amd64 (0.7-3~bpo10+1) ... Setting up liburing1:amd64 (0.7-3~bpo10+1) ... Processing triggers for libc-bin (2.33-1) ...
Retry MariaDB installation on Kali Linux.
$ sudo apt install mariadb-server mariadb-client Reading package lists... Done Building dependency tree... Done Reading state information... Done The following packages were automatically installed and are no longer required: fonts-roboto-slab libmms0 libofa0 Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: mariadb-client-10.7 mariadb-client-core-10.7 mariadb-common mariadb-server-10.7 mariadb-server-core-10.7 Suggested packages: mailx mariadb-test netcat-openbsd The following packages will be REMOVED: default-mysql-server mariadb-client-10.6 mariadb-client-core-10.6 mariadb-server-10.6 mariadb-server-core-10.6 The following NEW packages will be installed: mariadb-client mariadb-client-10.7 mariadb-client-core-10.7 mariadb-server mariadb-server-10.7 mariadb-server-core-10.7 The following packages will be upgraded: mariadb-common 1 upgraded, 6 newly installed, 5 to remove and 3 not upgraded. Need to get 13.8 MB of archives. After this operation, 4836 kB of additional disk space will be used. Do you want to continue? [Y/n] y
This time round it should be successful. Installed version can be validated using
--version command option.
$ mariadb --version mariadb Ver 15.1 Distrib 10.7.3-MariaDB, for debian-linux-gnu (x86_64) using readline EditLine wrapper
Step 4 – Start MariaDB Service on Kali Linux
Start and enable mariadb service once the package has been installed.
sudo systemctl enable mariadb sudo systemctl start mariadb
Status should show as running
$ systemctl status mariadb ● mariadb.service - MariaDB 10.7.3 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Wed 2022-02-16 09:05:04 EST; 12s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 6838 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 6839 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 6841 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_P> Process: 6883 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 6885 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 6870 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 14 (limit: 4613) Memory: 86.6M CPU: 559ms CGroup: /system.slice/mariadb.service └─6870 /usr/sbin/mariadbd Feb 16 09:05:05 kali /etc/mysql/debian-start: Phase 6/7: Checking and upgrading tables Feb 16 09:05:05 kali /etc/mysql/debian-start: Processing databases Feb 16 09:05:05 kali /etc/mysql/debian-start: information_schema Feb 16 09:05:05 kali /etc/mysql/debian-start: performance_schema Feb 16 09:05:05 kali /etc/mysql/debian-start: sys Feb 16 09:05:05 kali /etc/mysql/debian-start: sys.sys_config OK Feb 16 09:05:05 kali /etc/mysql/debian-start: Phase 7/7: Running 'FLUSH PRIVILEGES' Feb 16 09:05:05 kali /etc/mysql/debian-start: OK Feb 16 09:05:05 kali /etc/mysql/debian-start: Checking for insecure root accounts. Feb 16 09:05:05 kali /etc/mysql/debian-start: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
Secure database installation by running
mariadb-secure-installation script as sudo user.
$ sudo mariadb-secure-installation Switch to unix_socket authentication [Y/n] n Change the root password? [Y/n] y New password: Enter Password Re-enter new password: Re-Enter Password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Test authentication if it works. Without providing the password you should get access denied error message.
$ mysql -u root ERROR 1698 (28000): Access denied for user 'root'@'localhost'
-p option and provide the password set for root user during hardening process.
$ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 52 Server version: 10.7.3-MariaDB-1:10.7.3+maria~bullseye 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)]> exit Bye
How to purge MariaDB server on Kali Linux
If at any point you want to clean database server installation, start by removing server package of MariaDB.
$ sudo apt purge mariadb-server Reading package lists... Done Building dependency tree... Done Reading state information... Done The following packages were automatically installed and are no longer required: fonts-roboto-slab libmms0 libofa0 Use 'sudo apt autoremove' to remove them. The following packages will be REMOVED: mariadb-server* 0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded. After this operation, 10.2 kB disk space will be freed. Do you want to continue? [Y/n] y
To remove all database data, delete /var/lib/mysql/ directory.
sudo rm -rf /var/lib/mysql/
Finally remove mariadb-client package and all other dependencies installed earlier but nolonger needed.
$ sudo apt autoremove mariadb-server mariadb-client Reading package lists... Done Building dependency tree... Done Reading state information... Done Package 'mariadb-server' is not installed, so not removed The following packages will be REMOVED: fonts-roboto-slab libmms0 libofa0 mariadb-client 0 upgraded, 0 newly installed, 4 to remove and 3 not upgraded. After this operation, 650 kB disk space will be freed. Do you want to continue? [Y/n] y
In this article we’ve shared with you the process of installing MariaDB 10.7 on Kali Linux. After the installation, we covered service management, securing database server and how cleanup is performed. MariaDB is intended to remain free and open-source software under the GNU General Public License. Feel free to support the project through code contribution, bug reports, adopting MariaDB as your database of choice, or by spreading the word on MariaDB.