In Base de datos Última actualizaciónated:
Comparte en:
Software de Jira es la herramienta de gestión de proyectos número uno utilizada por equipos ágiles para planificar, rastrear, lanzar y respaldar software excelente.

Aprendamos a instalar y configurar MariaDB, un popular sistema de gestión de bases de datos relacionales MySQL de código abierto (RDBMS).

Está desarrollado por la comunidad y tiene la opción de soporte comercial. Se pretende que MariaDB siga siendo altamente compatible con MySQL, aunque existen algunas desviaciones.

En este artículo, cubriremos la instalación y configuración de MariaDB en Ubuntu 20.x y CentOS 7.x/8.x y al final revVea algunas de las mejores prácticas para asegurar y mejorar su rendimiento.

MariaDB en Ubuntu

En Ubuntu 20.x, MariaDB está disponible directamente desde sus repositorios predeterminados. Usaremos apt para esta tarea.

Primera actualizaciónate datos de repositorios aptos por:

$ sudo apt update

Una vez que se actualizan los datos del repositorioated, ejecutar:

$ sudo apt install mariadb-server

Esto instalará MariaDB y los paquetes necesarios. Confirme con 'Y' para cualquier mensaje que pueda recibir durante la ejecución del prevcomando ioso.

Do you want to continue? [Y/n] Y

MariaDB en CentOS 7.x

Para CentOS 7.x, la versión de MariaDB disponible en el repositorio predeterminado de CentOS es 5.x. Vamos a instalar la l.atePrimera versión disponible de MariaDB.

Para esto, primero necesitamos configurar un repositorio de yum adicional. MariaDB proporciona una forma sencilla de utilizar mariadb_repo_setup guión. Para configurar el repositorio, ejecute los siguientes comandos en su sistema CentOS 7.x:

$ sudo yum install wget
$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
$ chmod +x mariadb_repo_setup
$ sudo ./mariadb_repo_setup

Este script configurará el repositorio yum requerido para instalar l de MariaDB.ateprimera versión automáticaally. Al momento de escribir este artículo, es 10.x.

O en caso de que quiera ir de forma manual, puede configurar un repositorio de yum manual creando un nuevo archivo de repositorio como:

$ sudo vi /etc/yum.repos.d/MariaDB.repo

Luego agregue los siguientes detalles al archivo de repositorio y guárdelo:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Ahora para instalar MariaDB, ejecute el siguiente comando:

$ sudo yum install MariaDB-server

Confirme cualquier mensaje que aparezca durante la instalación ingresando 'y':

Is this ok [y/d/N]: y

Esto completa la instalación del servidor MariaDB y los paquetes dependientes.

MariaDB en CentOS 8.x

Para CentOS 8.x, la versión disponible de los repositorios predeterminados es 10.3 o más reciente. Podemos instalar MariaDB directamente usando el DNF mando:

sudo dnf install mariadb-server

Más para conseguir el latePrimera versión disponible, puede seguir la forma manual como se indica en la previous sección para CentOS 7.x y eso debería ayudarle a trabajar.

Iniciando MariaDB

En una máquina Ubuntu, el servicio MariaDB se ejecutará inmediatamente después de la instalación, mientras que en CentOS, tendremos que manually habilitar e iniciar servicios relevantes.

En cualquier caso, tanto para Ubuntu como para CentOS, ejecute los siguientes comandos para iniciar el servicio MariaDB, habilitarlo en el arranque y verificarlo:

$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service
$ sudo systemctl status mariadb.service

Salida:

$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
$ sudo systemctl status mariadb.service
● mariadb.service - MariaDB 10.5.8 database server
   Loaded: loaded (/usr/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 Thu 2020-12-31 13:20:04 IST; 13s ago
     Docs: man:mariadbd(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 13521 (mariadbd)
   Status: "Taking your SQL requests now..."
   CGroup: /system.slice/mariadb.service
           └─13521 /usr/sbin/mariadbd

Dec 31 13:20:04 centos7vm mariadbd[13521]: 2020-12-31 13:20:04 0 [Note] InnoDB: 10.5.8 started; log sequence number 45118; transaction id 20
Dec 31 13:20:04 centos7vm mariadbd[13521]: 2020-12-31 13:20:04 0 [Note] Plugin 'FEEDBACK' is disabled.
Dec 31 13:20:04 centos7vm mariadbd[13521]: 2020-12-31 13:20:04 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
Dec 31 13:20:04 centos7vm mariadbd[13521]: 2020-12-31 13:20:04 0 [Note] InnoDB: Buffer pool(s) load completed at 201231 13:20:04
Dec 31 13:20:04 centos7vm mariadbd[13521]: 2020-12-31 13:20:04 0 [Note] Server socket created on IP: '::'.
Dec 31 13:20:04 centos7vm mariadbd[13521]: 2020-12-31 13:20:04 0 [Note] Reading of all Master_info entries succeeded
Dec 31 13:20:04 centos7vm mariadbd[13521]: 2020-12-31 13:20:04 0 [Note] Added new Master_info '' to hash table
Dec 31 13:20:04 centos7vm mariadbd[13521]: 2020-12-31 13:20:04 0 [Note] /usr/sbin/mariadbd: ready for connections.
Dec 31 13:20:04 centos7vm mariadbd[13521]: Version: '10.5.8-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server
Dec 31 13:20:04 centos7vm systemd[1]: Started MariaDB 10.5.8 database server.
$

Asegurando MariaDB

Como primer paso después de la instalación de MariaDB, debemos asegurar su implementación estableciendo una contraseña de root, deshabilitando el inicio de sesión remoto, eliminando la base de datos de prueba y los usuarios anónimos, y finalmente.ally recargar privilegios.

Ejecute el siguiente comando para endurecer MariaDB:

$ sudo mysql_secure_installation

Puede seguir las indicaciones predeterminadas con acciones sugeridas a menos que tenga un requisito específico para deviate.

Salida:

$ 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
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

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

Aquí usaremos la autenticación del sistema, por lo que no hemos configurado una separación.ate contraseña de root para MariaDB, ya que ya es segura. Si es necesario, siempre puedes configurar una separación.ate contraseña de root también.

Validación de la configuración

Para verificar la configuración de MariaDB, ejecute (especifique la contraseña que configuró mientras mysql_secure_installation o, si se omite en ese momento, use las credenciales raíz de su sistema):

$ sudo mysqladmin -u root -p version
Enter password:
mysqladmin  Ver 9.1 Distrib 10.5.8-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version          10.5.8-MariaDB
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 53 min 17 sec

Threads: 2  Questions: 77  Slow queries: 0  Opens: 20  Open tables: 14  Queries per second avg: 0.024
$

Puede configurar una nueva cuenta de administrador en lugar de la raíz como se muestra a continuación (cambie el valor de password con el que pretendes establecer admin cuenta):

$ sudo mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.5.8-MariaDB MariaDB Server

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)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> exit
Bye
$

Verificar el acceso con nuevo admin usuario como (ingrese el password como se establece en la prevpaso siguiente):

$ mysqladmin -u admin -p version
Enter password:
mysqladmin  Ver 9.1 Distrib 10.5.8-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version          10.5.8-MariaDB
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 56 min 59 sec

Threads: 2  Questions: 83  Slow queries: 0  Opens: 20  Open tables: 14  Queries per second avg: 0.024
$

Optimización del SO

Después de instalar y asegurar su configuración de MariaDB, debe tomar medidas para ajustar su sistema operativo y su base de datos para un rendimiento óptimo. Este ajuste variará según la configuración de su sistema, el tipo de uso, el número de usuarios y otros factores.

Desde la perspectiva del sistema operativo, algunos parámetros del sistema se pueden configurar para MariaDB que discutiremos ahora.

Configuración del kernel de Linux - Programador de E / S

Los programadores de E / S recomendados para MariaDB son noop y deadline. Para comprobar el uso cat /sys/block/${DEVICE}/queue/scheduler

$ sudo cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none
$

Se puede realizar un cambio temporal emitiendo el siguiente comando y su efecto, si lo hubiera, será inmediato.ate sobre el rendimiento del sistema:

$ sudo echo noop > /sys/block/sda/queue/scheduler

Para que sea persistente, deberá configurarlo en el archivo de configuración de GRUB como se muestra a continuación en /etc/default/grub , reconstruya GRUB y reinicie el sistema.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

Límites de recursos: límite de archivos abiertos

usuario de Linuxally limita el número de archivos descriptos cada uno process puedo abrir. Para un sistema de base de datos activo, este límite puede exceder fácilmente o puede impact actuación. En muchos sistemas Linux, este límite predeterminado es 1024. Además, existe la opción de límites flexibles y estrictos.

Para aumentar el límite, puede agregar las siguientes líneas en su /etc/security/limits.conf:

mysql soft nofile 65535
mysql hard nofile 65535

Será necesario reiniciar el sistema después de lo cual mysql el usuario podrá ver y utilizar los nuevos límites. Esto se puede comprobar como:

$ ulimit -Sn
65535
$ ulimit -Hn
65535

Límites de recursos: tamaño del archivo principal

Linux limita el tamaño de los archivos principales como se ve en la prevcaso serio. Nuevamente, esto tiene un límite suave y estricto y, de forma predeterminada, el límite suave se establece en 0, lo que efectivamente diferenciasables generación de archivos principales. Para permitir la generación de archivos principales (otras configuraciones necesarias para la generación de volcados de memoria), podemos aumentar este valor en /etc/security/limits.conf como:

mysql soft core unlimited
mysql hard core unlimited

Después de reiniciar el sistema, mysql el usuario podría ver los nuevos valores usando ulimit comando como:

$ ulimit -Sc
unlimited
$ ulimit -Hc
unlimited

Configurar Swappiness

El valor de intercambio en Linux determina la probabilidad de que el sistema intercambie una página de la memoria para intercambiar el espacio configurado en el sistema. usúally, el valor predeterminado se establece en 60, que se puede comprobar desde:

sysctl vm.swappiness

Su valor puede oscilar entre 0 y 100, donde un valor más bajo significa una menor probabilidad de intercambio. En un servidor de base de datos que ejecuta únicamente MariaDB, querríamos reducir este valor a 0 para evitar el uso de intercambio tanto como sea posible. Tenga en cuenta aquí que establecer el valor de intercambio en 0 debe realizarse con precaución teniendo en cuenta otros factores de diseño del sistema, ya que en caso de un uso elevado de memoria o carga de E/S, existe la posibilidad de que se produzca falta de memoria (OOM). process matando por el núcleo.

Dado que se recomienda una configuración de intercambio baja para las cargas de trabajo de la base de datos y, como tal, para las bases de datos MariaDB, se recomienda establecer el intercambio en un valor de 1. Puede agregar la línea siguiente /etc/sysctl.confpara que este cambio sea persistente:

vm.swappiness = 1

Los cambios entrarán en vigor después del reinicio del sistema, aunque siempre puede hacerlo con anticipación usando sysctl mando:

sysctl -w vm.swappiness=1

Optimizaciones del sistema de archivos

Para MariaDB, los mejores sistemas de archivos Linux son generally considerado como ext4, XFS y Btrfs Todos ellos están incluidos en el núcleo principal de Linux y cuentan con un amplio soporte. Estos sistemas de archivos están disponibles en la mayoría de las distribuciones de Linux. Cada sistema de archivos tiene sus propiedades y características únicas y se puede elegir según los requisitos después de una adecuada revVer

Además, es poco probable que necesite registrar el tiempo de acceso a los archivos en un servidor de base de datos. podemos disable esto para mejorar el rendimiento. Puede montar el sistema de archivos relevante con noatime opción o agregarlo en las opciones de montaje en /etc/fstab archivo para hacerlo persistente.

Optimización de base de datos

Hay varios sintonizables internal al funcionamiento de MariaDB que se puede personalizar según los requisitos y necesidades de cada uno.

Discutiremos algunos de ellos aquí.

MariaDB se configura principalmente por my.cnf archivo.

On Ubuntu, puedes encontrar my.cnf en:

/etc/mysql/my.cnf

Mientras tanto CentOS su ubicaciónated en:

/etc/my.cnf

Se puede consultar documentación detallada sobre qué variables están disponibles para ajustar en el archivo de configuración desde Haga clic aquí para entrar..

Mucho también depende del tipo de motor utilizado por MariaDB, a saber, MyISAM y InnoDB or XtraDB. Ambos tienen sus propios pros y contras y elegir uno depende de los requisitos de la base de datos y la aplicación.

Deberíamos establecer innodb_buffer_pool_size aproximadamente al 80% de su memoria. Esto asegura que el 80% de su conjunto de trabajo esté en la memoria.

Algunos de los otros parámetros ajustables importantes son:

innodb_log_file_size
innodb_flush_method
innodb_thread_sleep_delay
innodb_adaptive_max_sleep_delay
innodb_buffer_pool_instances
innodb_buffer_pool_size
innodb_max_dirty_pages_pct_lwm
innodb_read_ahead_threshold
innodb_thread_concurrency

Se pueden encontrar más detalles sobre el ajuste de variables InnoDB o XtraDB Haga clic aquí para entrar.. Consulte este guía para todas las opciones de ajuste disponibles para MariaDB.

Si está interesado, consulte estos recursos para aprender SQL y NoSQL.

Para Concluir

MariaDB es una de las opciones populares cuando se trata de DBMS de relación. Siendo De código abierto con una comunidad diversa se suma más a ello.

Para obtener más información, consulte su documentación que incluye temas como SQL básico, migración, Administración de MariaDB, alta disponibilidad, ajuste de rendimiento, motores de almacenamiento, programación y personalización. También puede querer disable registro binario si no usa un clúster.

Comparte en:
  • Abhishek Nair
    Autor
    Abhishek es un SysOps Ingeniero y le encanta escribir sobre Linux, AWS y administración de sistemas.

Gracias a nuestros patrocinadores

Más lecturas excelentes en la base de datos

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a su negocio grow.
  • La herramienta de conversión de texto a voz que utiliza IA para generarate Voces realistas parecidas a las humanas.

    Intente Murf AI
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder