GNU/Linux >> Tutoriales Linux >  >> Linux

Configurar el servidor MariaDB en CentOS

El artículo anterior cubrió una configuración básica del servidor MariaDB® en CentOS Linux, incluida la configuración de la contraseña raíz, la creación de una base de datos y la creación de un usuario para la base de datos. Ahora veamos MariaDB con un poco más de detalle para modificar su configuración y estar preparados en caso de que algo salga mal.

Buscar los archivos de configuración

De manera predeterminada, encontrará el archivo de configuración de MariaDB en la siguiente ubicación:

/etc/my.cnf

Si no está allí, puede usar mysqld para buscar el archivo de configuración ejecutando el siguiente comando:

/usr/libexec/mysqld --help --verbose

Recibirás una gran cantidad de texto de vuelta. La primera parte describe las opciones que puede enviar al servidor cuando lo inicia. La segunda parte es toda la información de configuración que se estableció cuando se compiló el servidor.

Cerca del comienzo de la salida, busque un par de líneas que se parezcan a las siguientes líneas:

Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

El servidor trabaja en la lista hasta que encuentra un archivo de configuración.

mi.cnf

Abra my.cnf archivo y echar un vistazo dentro.

Cualquier línea que comience con # son comentarios, y en su mayoría documentan para qué sirven las diferentes configuraciones. Encontrará detalles como la ubicación de los archivos de registro y dónde se guardan los archivos de la base de datos.

Configurar grupos

Hay líneas en el archivo de configuración que solo contienen una palabra entre corchetes, como [cliente] o [mysqld] . Esos son grupos de configuración y le dicen a los programas que leen el archivo de configuración a qué partes deben prestar atención.

MariaDB es técnicamente una colección de herramientas que incluye el servidor (mysqld ), el cliente (mysql ), y algunas otras herramientas. Los programas buscan en my.cnf para ver cómo deben comportarse.

Básicamente, el mysql La sección de configuración controla el cliente y el mysqld sección controla el servidor.

Archivos de registro

Si algo sale mal, el mejor lugar para comenzar a solucionar cualquier programa son sus registros. De forma predeterminada, MariaDB almacena sus archivos de registro en el siguiente directorio:

/var/log/mariadb

Nota :Es posible que deba usar sudo para obtener una lista de los archivos en ese directorio.

Si no encuentra los registros en el directorio predeterminado, debe verificar la configuración de MariaDB. Busque en my.cnf archivo y busque un log_error línea, como en:

log_error = /var/log/mariadb/mariadb.log

Si no ve una línea como esa, cree una en mysqld para que MariaDB utilice su propio registro de errores. Recomendamos usar la ubicación en el ejemplo y crear el /var/log/mariadb directorio si aún no existe. Aplique el cambio reiniciando MariaDB con el siguiente comando:

systemctl restart mariadb

Asegúrese de que el usuario que controla el proceso de MariaDB pueda escribir en el directorio de registro que elija.

Configuración de red

Puede haber un puerto configuración en las secciones de configuración del cliente y del servidor. El puerto debajo de la sección del servidor controla el puerto que escucha el servidor. De forma predeterminada, es 3306, pero puede cambiarlo por el que desee.

El puerto en la sección del cliente le dice al cliente el puerto al que conectarse por defecto. Por lo general, desea que la configuración de los dos puertos coincida.

Si no ve las entradas del puerto en el archivo de configuración, eso significa que los puertos están usando el valor predeterminado. Si desea cambiar el puerto, agregue las líneas en las categorías apropiadas, como se muestra en el siguiente ejemplo:

[client]
port = 3306

[mysqld]
port = 3306

La otra configuración de red que debe buscar es bind-address valor. Por lo general, se establece en la dirección de localhost, 127.0.0.1. Al vincularse al host local, el servidor se asegura de que nadie pueda conectarse desde fuera de la máquina local.

Si está ejecutando su servidor MariaDB en una máquina diferente de su aplicación, desea enlazar a una dirección accesible de forma remota en lugar de un host local. Cambiar la dirección de enlace configuración para que coincida con su dirección IP pública (o, mejor aún, con una dirección IP de back-end en una red a la que pueden acceder menos máquinas).

Si no ve una dirección de vinculación entrada, debe poner una en mysqld categoría para ayudar a controlar el acceso al servidor, similar al siguiente ejemplo:

[mysqld]
bind-address = 127.0.0.1

Recuerde tener en cuenta el nombre de host del cliente cuando configure los usuarios de su base de datos y configure su firewall si está ejecutando iptables.

mysqld y mysqld_safe

Detrás de escena, en realidad hay dos versiones del servidor MariaDB, mysqld y mysqld_safe . Ambos leen las mismas secciones de configuración. La principal diferencia es que mysqld_safe se inicia con algunas funciones de seguridad habilitadas para que sea más fácil recuperarse de un bloqueo u otro problema.

Ambos mysqld y mysqld_safe leerá las entradas de configuración en mysqld sección. Si incluye un mysqld_safe sección, entonces solo mysqld_safe lee esos valores.

Por defecto, mysql el servicio lanza mysqld_safe . Solo debe cambiar esto si está realmente seguro de lo que está haciendo.

mysqladmin

El mysqladmin La herramienta le permite realizar algunas funciones administrativas desde la línea de comandos. Esta herramienta no se trata en este artículo porque cubre los conceptos básicos para que pueda comenzar a utilizarla. Puede analizar esta herramienta con más profundidad más adelante para ver lo que puede hacer, especialmente si necesita crear secuencias de comandos que realicen funciones como verificar el estado del servidor o creación y eliminación de bases de datos.

Copias de seguridad

Cuando se trata de hacer copias de seguridad de sus bases de datos (aparte del enfoque de hacer una copia de seguridad de toda la máquina), tiene algunas opciones. Las principales opciones son copiar los archivos de la base de datos y usar mysqldump .

Copia de archivo

De manera predeterminada, MariaDB crea un directorio para cada base de datos en su directorio de datos similar al siguiente ejemplo:

/var/lib/mysql

Una vez que haya encontrado el directorio de datos, no haga una copia inmediatamente. Cuando el servidor de la base de datos está activo, puede estar escribiendo nuevos valores en las tablas en cualquier momento. Si escribe en una tabla a la mitad de su copia, algunos archivos cambiarán y darán lugar a una copia de seguridad corrupta. Si está tratando de planificar una recuperación ante desastres, esto no es bueno.

Para asegurarse de que los archivos de la base de datos se copian correctamente, apague el servidor MariaDB por completo antes de la copia. Eso es seguro pero no siempre es ideal.

Otro enfoque que puede tomar es bloquear la base de datos como de solo lectura durante la copia. Luego, cuando haya terminado, suelte el bloqueo. De esta manera, sus aplicaciones aún pueden leer datos mientras realiza una copia de seguridad de los archivos.

Bloquee las bases de datos para que sean de solo lectura ejecutando el siguiente comando desde la línea de comando:

mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"

Para desbloquear la base de datos cuando haya terminado, ejecute este comando:

mysql -u root -p -e "UNLOCK TABLES;"

Las opciones -e con mysql El cliente le dice al cliente que ejecute la consulta entre comillas como si se hubiera ingresado con mysql concha.

Si está configurando estos comandos en un script, puede poner la contraseña entre comillas justo después de -p sin espacio entre los dos, como en el siguiente ejemplo:

mysql -u root -p"password" -e "FLUSH TABLES WITH READ LOCK;"
mysql -u root -p"password" -e "UNLOCK TABLES;"

Nota: Asegúrese de configurar los permisos en ese archivo para restringir el acceso de lectura para proteger la contraseña.

mysqldump

Otro enfoque para hacer una copia de seguridad de su base de datos es usar el mysqldump herramienta. En lugar de copiar los archivos de la base de datos directamente, mysqldump genera un archivo de texto que representa la base de datos. De forma predeterminada, el archivo de texto contiene una lista de declaraciones SQL que usaría para recrear la base de datos, pero también puede exportar la base de datos en otro formato como CSV o XML. Puede leer el mysqldump página man para ver todas sus opciones.

Las declaraciones generadas por mysqldump vaya a la salida estándar. Desea especificar un archivo para redirigir la salida cuando lo ejecute. Por ejemplo:

mysqldump -u root -p demodb > dbbackup.sql

Ese comando le dice a mysqldump para recrear el demodb base de datos en sentencias SQL y escribirlas en el archivo dbbackup.sql . Tenga en cuenta que las opciones de nombre de usuario y contraseña funcionan igual que mysql cliente, para que pueda incluir la contraseña directamente después de -p en un guión.

Restaurar desde mysqldump

Restaurar una base de datos copiada con mysqldump se ve similar a lo que se usó para crearlo, pero usa mysql en lugar de mysqldump , como se muestra en el siguiente comando:

mysql -u root -p demodb < dbbackup.sql

También cambia de usar un signo mayor que a un signo menor que, lo que cambia el comando de redirigir su salida para indicarle que lea su entrada del archivo existente. La entrada se envía a mysql comando y provoca las instrucciones en la copia realizada con mysqldump para recrear la base de datos.

De forma predeterminada, las instrucciones SQL que se generan se agregan a las tablas de bases de datos existentes sin sobrescribirlas. Si está restaurando una copia de seguridad sobre una base de datos existente, primero debe eliminar las tablas de la base de datos o eliminar y volver a crear la base de datos. Puede cambiar ese comportamiento mediante el –add-drop-table opción con el comando que crea el mysqldump . Si lo hace, mysqldump para agregar un comando a los archivos de copia de seguridad que escribe que elimina las tablas antes de volver a crearlas.

Motor de base de datos

El último concepto a cubrir en este artículo es el motor de base de datos .El motor es el proceso que se desarrolla tras bambalinas, escribiendo y leyendo archivos. Por lo general, no necesitará saber nada más que eso, pero a veces querrá ejecutar una aplicación que haya sido optimizada para un motor de base de datos en particular.

El tipo de motor se establece cuando se crea una tabla. Las tablas generalmente las crea la aplicación que las va a usar.

Para ver el motor utilizado por las tablas de su base de datos, puede ejecutar el siguiente comando en el shell de MariaDB, cambiando demodb al nombre de su base de datos:

SHOW TABLE STATUS FROM demodb;

Elegir un motor

Idealmente, no tendrá que elegir un motor. Si no está muy familiarizado con MariaDB, esa es la forma más segura de hacerlo. Deje que la aplicación maneje esto, y si está escribiendo la aplicación, use el motor predeterminado hasta que se sienta más cómodo con sus opciones.

Los motores de base de datos que se usan con más frecuencia con MariaDB son MyISAM y InnoDB .

MiISAM

Debido a que MyISAM ha sido el predeterminado en MySQL por un tiempo, es el más compatible con MariaDB. Ciertos tipos de búsquedas funcionan mejor en MyISAM que en InnoDB. El hecho de que sea el más antiguo de los dos no significa que no pueda ser el mejor para un tipo de aplicación determinado.

InnoDB

InnoDB es más tolerante a fallas que MyISAM y maneja fallas y recuperaciones con una posibilidad mucho menor de corrupción de la base de datos. Esto es algo bueno.

Sin embargo, para obtener el mejor rendimiento, InnoDB requiere muchos ajustes para su entorno y patrones de acceso. Si tiene aDBA, este trabajo podría no ser un problema. Pero si usted es un desarrollador que quiere una base de datos en funcionamiento para un servidor de prueba, probablemente no querrá lidiar con el ajuste de InnoDB.

Resumen

En este punto, debe tener una buena comprensión de MariaDB. Para obtener más información, consulte el sitio de documentación de MariaDB.


Linux
  1. Instalación de MariaDB en CentOS 7

  2. Instale MariaDB 10.0 en CentOS 6

  3. Instalar un servidor MariaDB en CentOS

  4. Centos 7:instalar, configurar, administrar

  5. Centos 7:configurar el servidor DNS

Cómo configurar NGINX en un servidor CentOS 7

Cómo instalar y configurar Subversion (SVN) en CentOS 7

Cómo instalar y configurar Sandstorm Server en CentOS 8

Cómo instalar y configurar Privoxy Server en CentOS 8

Cómo configurar el servidor VNC en CentOS/RHEL 6

Centos 7:configurar el servidor NTP