How To Install MariaDB 10.6 on Kali Linux 2022.x

Posted on 336 views

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 0xF1656F24C74CD1D8
echo "deb [arch=amd64] 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 kali-rolling InRelease
Get:2 bullseye InRelease [4634 B]
Get:3 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
  Installed: (none)
  Candidate: 1:10.6.7+maria~bullseye
  Version table:
     1:10.6.7+maria~bullseye 500
        500 bullseye/main amd64 Packages
     1:10.6.5+maria~bullseye 500
        500 bullseye/main amd64 Packages
     1:10.6.5-2 500
        500 kali-rolling/main amd64 Packages
     1:10.6.4+maria~bullseye 500
        500 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
     Active: active (running) since Wed 2022-02-16 08:15:51 EST; 5s ago
       Docs: man:mariadbd(8)
    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 


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 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


Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.