Cómo instalar, proteger y ajustar el rendimiento del servidor de base de datos MariaDB

Cómo instalar, proteger y ajustar el rendimiento del servidor de base de datos MariaDB

Un servidor de base de datos es un componente crítico de la infraestructura de red necesaria para las aplicaciones actuales. Sin la capacidad de almacenar, recuperar, actualizar y eliminar datos (cuando sea necesario), la utilidad y el alcance de las aplicaciones web y de escritorio se vuelven muy limitados.

 Instalar, asegurar y ajustar el rendimiento del servidor MariaDB  Instalar, asegurar y ajustar el rendimiento del servidor MariaDB Instalar, proteger y ajustar el rendimiento del servidor MariaDB

Además, saber cómo instalar, administrar y configurar un servidor de base de datos (para que funcione como se espera) es una habilidad esencial que todo administrador de sistema debe tener.

En este artículo Revisaremos brevemente cómo instalar y asegurar un servidor de base de datos MariaDB y luego explicaremos cómo configurarlo.

Instalar y asegurar un servidor MariaDB

En CentOS 7.x. MariaDB reemplazó a MySQL, que todavía se puede encontrar en Ubuntu. (junto con MariaDB). Lo mismo es cierto para openSUSE.

Por brevedad, solo usaremos MariaDB. en este tutorial, pero tenga en cuenta que además de tener diferentes nombres y desarrollo filosofías, ambos Sistemas de gestión de bases de datos relacionales. ( RDBMS. para abreviar) son casi idénticos.

freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotId : “tecmint_incontent”);

Esto significa que los comandos del lado del cliente son los mismos en MySQL. y MariaDB. y los archivos de configuración se nombran y se ubican en en los mismos lugares.

Para instalar MariaDB, haga:

————— En CentOS/RHEL 7 y Fedora 23. ————–# yum update && yum install mariadb mariadb-server # CentOS————— En Debian y Ubuntu. ————–$ sudo aptitude update && sudo aptitude install mariadb-client mariadb-serve r————— En openSUSE. ————–# zypper update && zypper install mariadb mariadb-tools # openSUSE

Tenga en cuenta que, en Ubuntu. se le pedirá que ingrese una contraseña para el usuario root de RDBMS.

Una vez lo anterior Se han instalado paquetes, asegúrese de que el servicio de base de datos se esté ejecutando y se haya activado para iniciarse en el arranque (en CentOS. y openSUSE. deberá realizar esta operación manualmente, mientras que en Ubuntu. el proceso de instalación ya se habrá encargado de ello):

————— En CentOS/RHEL 7 y Fedora 23. ————–# systemctl start mariadb && systemctl enable mariadb————– En openSUSE. ————–# systemctl start mysql && systemctl enable mysql

Luego ejecuta el script mysql_secure_installation . Este proceso le permitirá:

  1. establecer/restablecer la contraseña para el usuario raíz de RDBMS
  2. eliminar los inicios de sesión anónimos (permitiendo así que solo los usuarios con una cuenta válida inicien sesión en el RDBMS)
  3. deshabilitar el acceso de root para máquinas que no sean localhost
  4. eliminar la base de datos de prueba (a la que cualquiera puede acceder)
  5. activar los cambios asociados con 1 a 4 .

Para obtener una descripción más detallada de este proceso, puede consultar la sección posterior a la instalación en Instalar la base de datos MariaDB en RHEL/CentOS/Fedora y Debian/Ubuntu.

Configuración del servidor MariaDB

Las opciones de configuración predeterminadas se leen de los siguientes archivos en el orden indicado:/etc/mysql/my.cnf,/etc/my.cnf y ~/.my.cnf.

La mayoría de las veces, solo existe/etc/my.cnf. Es en este archivo donde estableceremos la configuración de todo el servidor (que se puede anular con la misma configuración en ~/.my.cnf para cada usuario).

Lo primero que debemos tener en cuenta acerca de my.cnf es que las configuraciones están organizadas en categorías (o grupos) donde cada nombre de categoría está entre corchetes.

Las configuraciones del sistema del servidor se dan en la sección [mysqld], donde normalmente solo encontrará las dos primeras configuraciones en la tabla siguiente. El resto son otras opciones de uso frecuente (donde se indique, cambiaremos el valor predeterminado con uno personalizado de nuestra elección):

Configuración y descripción Valor predeterminado datadir es el directorio donde se almacenan los archivos de datos. datadir =/var/lib/mysql socket indica el nombre y la ubicación del archivo de socket que se utiliza para las conexiones del cliente local. Tenga en cuenta que un archivo de socket es un recurso que se utiliza para pasar información entre aplicaciones. socket =/var/lib/mysql/mysql.sock bind_address es la dirección donde el servidor de la base de datos escuchará las conexiones TCP/IP. Si necesita que su servidor escuche en más de una dirección IP, omita esta configuración (0.0.0.0, lo que significa que escuchará en todas las direcciones IP asignadas a este host específico).

Lo cambiaremos a indique al servicio que escuche solo en su dirección principal (192.168.0.13):

bind_address = 192.168.0.13 bind_address = 0.0.0.0 puerto representa el puerto donde el servidor de la base de datos estará escuchando.

Reemplazaremos el valor predeterminado (3306) con 20500 (pero debemos asegurarnos de que nada más esté usando ese puerto): port = 20500

Mientras que algunas personas argumentarán que la seguridad a través de la oscuridad no es buena En la práctica, cambiar los puertos de aplicación predeterminados por unos superiores es un método rudimentario, pero eficaz, para desalentar los análisis de puertos. port = 3306 innodb_buffer_pool_size es el grupo de búfer (en bytes) de memoria que se asigna para datos e índices a los que se accede con frecuencia cuando se usa Innodb (que es el predeterminado en MariaDB) o XtraDB como motor de almacenamiento.

Nosotros reemplazará el valor predeterminado con 256 MB:

innodb_buffer_pool_size = 256M innodb_buffer_pool_size = 134217728 skip_name_resolve indica si los nombres de host se resolverán o no en las conexiones entrantes. Si se establece en 1, como haremos en esta guía, solo direcciones IP.

A menos que requiera nombres de host para determinar los permisos, es recomendable deshabilitar esta variable (para acelerar las conexiones y consultas) por estableciendo su valor en 1:

skip_name_resolve = 1 skip_name_resolve = 0 query_cache_size representa el tamaño (en bytes) disponible para la caché de consultas en el disco, donde los resultados de las consultas SELECT se almacenan para uso futuro cuando una consulta idéntica (a la misma base de datos y utilizando el mismo protocolo y el mismo juego de caracteres).

Debe elegir un tamaño de caché de consultas que coincida con sus necesidades en función de 1) el número de consultas repetitivas y 2) la número aproximado de registros que se espera que devuelvan esas consultas repetitivas. Estableceremos este valor en 100 MB por el momento:

query_cache_size = 100M query_cache_size = 0 (lo que significa que está deshabilitado por defecto) max_connections es el número máximo de conexiones de cliente simultáneas al servidor. Estableceremos este valor en 30: max_connections = 30 Cada conexión usará un hilo y, por lo tanto, consumirá memoria. Tenga en cuenta este hecho al configurar max_connections. max_connections = 151 thread_cache_size indica el número de subprocesos que el servidor asigna para su reutilización después de que un cliente se desconecta y libera subprocesos que estaban en uso anteriormente. En esta situación, es más barato (en términos de rendimiento) reutilizar un hilo que crear una instancia de uno nuevo.

De nuevo, esto depende de la cantidad de conexiones que espera. Podemos establecer con seguridad este valor en la mitad del número de max_connections:

thread_cache_size = 15 thread_cache_size = 0 (deshabilitado por defecto)

En CentOS. tendremos que decir SELinux. para permitir que MariaDB. escuche en un puerto no estándar ( 20500. antes de reiniciar el servicio:

# yum install policycoreutils-python # semanage port-a-t mysqld_port_t-p tcp 20500

Luego reinicie el servicio MariaDB.

Ajuste del rendimiento de MariaDB

Para ayudarnos a verificar y ajustar la configuración según nuestro necesidades específicas, podemos instalar mysqltuner. (un script que brindará sugerencias para mejorar el rendimiento de nuestro servidor de base de datos y aumentar su estabilidad):

# wget https://github.com/major/MySQLTuner-perl/tarball/master # tar xzf master

Luego, cambie el directorio a la carpeta extraída del tarball (la versión exacta puede diferir en su caso):

# cd major-MySQLTuner-perl-7dabf27 y ejecútelo (se le pedirá que ingrese las credenciales de su cuenta administrativa de MariaDB)

# ./mysqltuner.pl

El resultado del script es en sí mismo muy interesante, pero vayamos al final donde las variables a ajustar se listan con el valor recomendado:

 MariaDB Performance Tunning  MariaDB Performance Tunning MariaDB Performance Tunning

La configuración query_cache_type indica si la caché de consultas está deshabilitada (0) o habilitado (1). En este caso, mysqltuner. nos aconseja que lo desactivemos.

Entonces, ¿por qué se nos aconseja que lo desactivemos ahora? La razón es que la caché de consultas es útil principalmente en escenarios de alta lectura/baja escritura (que no es nuestro caso, ya que acabamos de instalar el servidor de base de datos).

ADVERTENCIA. antes de realizar cambios en la configuración de un servidor de producción, le recomendamos que consulte a un administrador de base de datos experto para asegurarse de que una recomendación dada por mysqltuner no tendrá un impacto negativo en una configuración existente.

Resumen

En este artículo hemos explicado cómo configurar un servidor de base de datos MariaDB después de haberlo instalado y protegido. Las variables de configuración que se enumeran en la tabla anterior son solo algunas configuraciones que quizás desee considerar al preparar el servidor para su uso o al ajustarlo más adelante. Consulte siempre la documentación oficial de MariaDB antes de realizar cambios o consulte nuestros consejos de ajuste de rendimiento de MariaDB:

No se pierda: 15 consejos útiles de optimización y ajuste del rendimiento de MariaDB

Como siempre, no No dude en hacernos saber si tiene alguna pregunta o comentario sobre este artículo. ¿Hay alguna otra configuración del servidor que le guste usar? Siéntase libre de compartir con el resto de la comunidad utilizando el formulario de comentarios a continuación.