In our guide today, we’ll discuss how you can install MariaDB 10.6 on Kali Linux (2022.x) release. MariaDB is a drop-in replacement of MySQL with more features, new storage engines, and better performance. You can get all the details on MariaDB 10.6 features from the project website.
As of this article writing, MariaDB 10.6 is the latest stable release of MariaDB Database Management system installable on Linux and some BSD systems. Before we install MariaDB on Kali Linux, we will add the official MariaDB apt repository, then install all dependencies and actual MariaDB packages from it.
Step 1: Update System
Let’s ensure our system is updated.
sudo apt update
If it is okay for you to update all installed packages, you can run the upgrade command then reboot the system.
sudo apt upgrade
sudo reboot
Step 2: Add MariaDB APT repository to Kali Linux
We’ll use the MariaDB apt repository for Debian 11 (Bullseye). Ensure you install the following software dependencies.
sudo apt -y install software-properties-common gnupg2
Then add MariaDB APT repository to Kali Linux.
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
echo "deb [arch=amd64] http://mariadb.mirror.liquidtelecom.com/repo/10.6/debian bullseye main" | sudo tee /etc/apt/sources.list.d/mariadb.list
Then update your APT index before the actual installation of MariaDB on Kali Linux.
$ sudo apt update
Hit:1 http://ftp.halifax.rwth-aachen.de/kali kali-rolling InRelease
Get:2 http://mariadb.mirror.liquidtelecom.com/repo/10.6/debian bullseye InRelease [4634 B]
Get:3 http://mariadb.mirror.liquidtelecom.com/repo/10.6/debian bullseye/main amd64 Packages [26.3 kB]
Fetched 31.0 kB in 1s (33.2 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
49 packages can be upgraded. Run 'apt list --upgradable' to see them.
Step 3: Install MariaDB 10.6 on Kali Linux
After addition of the repository, we can install MariaDB server and client software packages on Kali Linux using the apt package manager.
Confirm if packages are available in the repository:
$ apt policy mariadb-server
mariadb-server:
Installed: (none)
Candidate: 1:10.6.7+maria~bullseye
Version table:
1:10.6.7+maria~bullseye 500
500 http://mariadb.mirror.liquidtelecom.com/repo/10.6/debian bullseye/main amd64 Packages
1:10.6.5+maria~bullseye 500
500 http://mariadb.mirror.liquidtelecom.com/repo/10.6/debian bullseye/main amd64 Packages
1:10.6.5-2 500
500 http://http.kali.org/kali kali-rolling/main amd64 Packages
1:10.6.4+maria~bullseye 500
500 http://mariadb.mirror.liquidtelecom.com/repo/10.6/debian bullseye/main amd64 Packages
Install MariaDB 10.6 on Kali Linux system
sudo apt update
sudo apt install mariadb-server
Start and enable mariadb service after installation.
sudo systemctl enable --now mariadb
Confirm the service is started.
$ systemctl status mariadb
● mariadb.service - MariaDB 10.6.7 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 08:15:51 EST; 5s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Process: 27048 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Process: 27049 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 27051 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_>
Process: 27096 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 27098 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Main PID: 27080 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 17 (limit: 9444)
Memory: 84.2M
CPU: 592ms
CGroup: /system.slice/mariadb.service
└─27080 /usr/sbin/mariadbd
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: performance_schema
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: sys
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: Phase 6/7: Checking and upgrading tables
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: Processing databases
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: information_schema
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: performance_schema
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: sys
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: sys.sys_config OK
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Feb 16 08:15:53 kali /etc/mysql/debian-start[27104]: OK
Step 4: Secure MariaDB server
Now run the secure script to set root password, remove test database and disable remote root user login.
$ sudo mysql_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] n
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!
You now need to provide username and password to access MySQL console. Without authentication, you’ll get access denied error.
$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Use the -p option to authenticate:
$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 55
Server version: 10.5.8-MariaDB-1:10.5.8+maria~buster 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)]> SELECT VERSION();
+--------------------------------------+
| VERSION() |
+--------------------------------------+
| 10.5.8-MariaDB-1:10.5.8+maria~buster |
+--------------------------------------+
1 row in set (0.000 sec)
MariaDB [(none)]> \q
Bye
Best MySQL Learning Courses on Udemy:
- The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert
- SQL – MySQL for Data Analytics and Business Intelligence
- MySQL, SQL and Stored Procedures from Beginner to Advanced
- SQL for Beginners: Learn SQL using MySQL and Database Design
- The Complete MySQL Developer Course
- MySQL Database Administration: Beginner SQL Database Design
- Learn Database Design with MySQL
More on Kali Linux.