Chapter 21. MariaDB (a replacement for MySQL)

The MariaDB database is a multi-user, multi-threaded SQL database server that consists of the MariaDB server daemon (mysqld) and many client programs and libraries.[20]
In Red Hat Enterprise Linux, the mariadb-server package provides MariaDB. Run the following command to see if the mariadb-server package is installed:
~]$ rpm -q mariadb-server
package mariadb-server is not installed
If it is not installed, use the yum utility as root to install it:
~]# yum install mariadb-server

21.1. MariaDB and SELinux

When MariaDB is enabled, it runs confined by default. Confined processes run in their own domains, and are separated from other confined processes. If a confined process is compromised by an attacker, depending on SELinux policy configuration, an attacker's access to resources and the possible damage they can do is limited. The following example demonstrates the MariaDB processes running in their own domain. This example assumes the mariadb-server package is installed:
  1. Run the getenforce command to confirm SELinux is running in enforcing mode:
    ~]$ getenforce
    Enforcing
    
    The command returns Enforcing when SELinux is running in enforcing mode.
  2. Run the following command as the root user to start mariadb:
    ~]# systemctl start mariadb.service
    Confirm that the service is running. The output should include the information below (only the time stamp will differ):
    ~]# systemctl status mariadb.service
    mariadb.service - MariaDB database server
       Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled)
       Active: active (running) since Mon 2013-08-05 11:20:11 CEST; 3h 28min ago
    
  3. Run the following command to view the mysqld processes:
    ~]$ ps -eZ | grep mysqld
    system_u:system_r:mysqld_safe_t:s0 12831 ?     00:00:00 mysqld_safe
    system_u:system_r:mysqld_t:s0   13014 ?        00:00:00 mysqld
    
    The SELinux context associated with the mysqld processes is system_u:system_r:mysqld_t:s0. The second last part of the context, mysqld_t, is the type. A type defines a domain for processes and a type for files. In this case, the mysqld processes are running in the mysqld_t domain.


[20] See the MariaDB project page for more information.