Cómo cambiar un directorio de datos MySQL/Mariadb predeterminado en Linux

Cómo cambiar un directorio de datos MySQL/Mariadb predeterminado en Linux

Después de instalar los componentes de una pila de lámparas en un servidor CentOS/RHEL 7, hay un par de cosas que es posible que desee hacer.

Algunos de ellos tienen que ver con aumentar la seguridad del Apache y MySQL / MariadB, mientras que otros pueden ser aplicables o no de acuerdo con nuestra configuración o necesidades.

Por ejemplo, según el uso esperado del servidor de la base de datos, es posible que deseemos cambiar el valor predeterminado datos directorio (/var/lib/mysql) a una ubicación diferente. Este es el caso cuando se espera que dicho directorio crezca debido al alto uso.

De lo contrario, el sistema de archivos donde /var se almacena puede colapsar en un punto haciendo que todo el sistema falle. Otro escenario en el que cambiar el directorio predeterminado es cuando tenemos una parte de red dedicada que queremos usar para almacenar nuestros datos reales.

Por esta razón, en este artículo, explicaremos cómo cambiar el directorio de datos MySQL/Mariadb predeterminado a una ruta diferente en un servidor CentOS/RHEL 7 y distribuciones de Ubuntu/Debian.

Aunque usaremos Mariada, Los conceptos explicados y los pasos dados en este artículo se aplican tanto a Mysql y para Mariada A menos que se indique lo contrario.

Cambiar el directorio de datos MySQL/Mariadb predeterminado

Nota: Vamos a asumir que nuestro nuevo directorio de datos es /mnt/mysql-data. Es importante tener en cuenta que este directorio debe ser propiedad de mysql: mysql.

# mkdir /mnt /mysql-data # chown -r mysql: mysql /mnt /mysql-data 

Para su conveniencia, hemos dividido el proceso en 5 pasos fáciles de seguir:

Paso 1: Identificar el directorio actual de datos MySQL

Para comenzar, es digno y bueno identificar el directorio de datos actual utilizando el siguiente comando. No solo asumas que todavía está /var/lib/mysql ya que podría haber cambiado en el pasado.

# mysql -u root -p -e "seleccione @@ datadir;" 

Después de ingresar la contraseña mySQL, la salida debe ser similar a.

Identificar el directorio de datos MySQL

Paso 2: Copie el directorio de datos MySQL a una nueva ubicación

Para evitar la corrupción de datos, detenga el servicio si se ejecuta actualmente antes de continuar. Utilizar el system Comandos bien conocidos para hacerlo:

------------- En Systemd ------------- # SystemCTL Stop Mariadb # SystemCTL IS-Active MariadB ------------- Sysvinit ------------- # Servicio MySQLD Stop # Servicio Estado de MySqld o # Servicio MySQL Stop # Servicio MySQL Status 

Si el servicio ha sido derribado, la salida del último comando debe ser el siguiente:

Detener el servicio MySQL

Luego copie recursivamente el contenido de /var/lib/mysql a /mnt/mysql-data Preservar permisos y marcas de tiempo originales:

# cp -r -p/var/lib/mysql/*/mnt/mysql -data 
Copiar el directorio de datos MySQL a una nueva ubicación

Paso 3: Configurar un nuevo directorio de datos MySQL

Editar el archivo de configuración (mi.CNF) para indicar el nuevo directorio de datos (/mnt/mysql-data en este caso).

# vi /etc /mi.CNF o # VI/etc/mysql/my.CNF 

Localizar el [mysqld] y [cliente] secciones y realizar los siguientes cambios:

Bajo [mysqld]: datadir =/mnt/mysql-data socket =/mnt/mysql-data/mysql.calcetín Bajo [Cliente]: puerto = 3306 socket =/mnt/mysql-data/mysql.calcetín 

Guarde los cambios y luego continúe con el siguiente paso.

Configurar el nuevo directorio de datos MySQL

Paso 4: Establezca el contexto de seguridad de Selinux en el directorio de datos

Este paso solo es aplicable a Rhel/centos y sus derivados.

Agregue el contexto de seguridad de Selinux a /mnt/mysql-data Antes de reiniciar Mariadb.

# semanage fcontext -a -t mysqld_db_t "/mnt/mysql -data (/.*)?" # restaurecon -r /mnt /mysql -data 

A continuación, reinicie el servicio mysql.

------------- En Systemd ------------- # SystemCTL Stop Mariadb # SystemCTL IS-Active MariadB ------------- Sysvinit ------------- # Servicio MySQLD Stop # Servicio Estado de MySqld o # Servicio MySQL Stop # Servicio MySQL Status 

Ahora, use el mismo comando que en Paso 1 Para verificar la ubicación del nuevo directorio de datos:

# mysql -u root -p -e "seleccione @@ datadir;" 
Verificar el directorio de datos de nuevo MySQL

Paso 5: Cree una base de datos MySQL para confirmar el directorio de datos

Inicie sesión en MariadB, cree una nueva base de datos y luego verifique /mnt/mysql-data:

# mysql -u root -p -e "Crear base de datos TecMint;" 
Verifique el directorio de datos de nuevo MySQL

Felicidades! Ha cambiado con éxito el directorio de datos para mysql o mariadb.

Resumen

En esta publicación, hemos discutido cómo cambiar el directorio de datos en un servidor MySQL o mariadb que se ejecuta en CentOS/RHEL 7 y las distribuciones de Ubuntu/Debian.

¿Tiene alguna pregunta o comentario sobre este artículo?? Siéntase libre de informarnos con el formulario a continuación; siempre nos alegramos de saber de usted!