Cómo cambiar un directorio de datos MySQL/Mariadb predeterminado en Linux
- 776
- 54
- Adriana Tórrez
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 MySQLPaso 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 MySQLLuego 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 -dataCopiar 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 MySQLPaso 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!
- « Cómo instalar Chef Workstation en Rhel y Centos 8/7
- 10 sitios web útiles para aprender el sistema de bases de datos PostgreSQL »