Después de instalar los componentes de un Pila LAMP en un servidor CentOS / RHEL 7, es posible que desee hacer un par de cosas.
Algunos de ellos tienen que ver con aumentando la seguridad de Apache y MySQL / MariaDB, mientras que otros pueden ser aplicables o no según 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 a un alto uso.
De lo contrario, el sistema de archivos donde /var
almacenado puede colapsar en un punto y causar que todo el sistema falle. Otro escenario en el que cambiar el directorio predeterminado es cuando tenemos un recurso compartido de red dedicado que queremos usar para almacenar nuestros datos reales.
Por esta razón, en este artículo, explicaremos cómo cambiar el directorio de datos predeterminado de MySQL / MariaDB a una ruta diferente en un servidor CentOS / RHEL 7 y distribuciones Ubuntu / Debian.
Aunque usaremos MariaDB, los conceptos explicados y los pasos dados en este artículo se aplican tanto a MySQL y para MariaDB a menos que se indique lo contrario.
Nota: Vamos a suponer 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 comodidad, hemos dividido el proceso en 5 pasos fáciles de seguir:
Para comenzar, vale la pena identificar el directorio de datos actual usando el siguiente comando. No asuma que todavía está /var/lib/mysql
ya que podría haber sido cambiado en el pasado.
# mysql -u root -p -e "SELECCIONAR @@ datadir;"
Después de ingresar la contraseña de MySQL, el resultado debería ser similar a.
Para evitar la corrupción de datos, detenga el servicio si se está ejecutando actualmente antes de continuar. Utilizar el systemd comandos conocidos para hacerlo:
En SystemD # systemctl detener mariadb. # systemctl is-active mariadb En SysVInit # servicio mysqld stop. # service mysqld status O # service mysql stop. # estado del servicio mysql.
Si el servicio se ha desactivado, la salida del último comando debe ser la siguiente:
Luego copia recursivamente el contenido de /var/lib/mysql
para /mnt/mysql-data
preservando los permisos y las marcas de tiempo originales:
# cp -R -p / var / lib / mysql / * / mnt / mysql-data.
Edite el archivo de configuración (my.cnf
) para indicar el nuevo directorio de datos (/mnt/mysql-data
en este caso).
# vi /etc/my.cnf. O. # vi /etc/mysql/my.cnf.
Localizar el [mysqld]
y [cliente]
secciones y realice los siguientes cambios:
En [mysqld]: datadir = / mnt / mysql-data. socket = / mnt / mysql-data / mysql.sock Debajo de [cliente]: puerto = 3306. socket = / mnt / mysql-data / mysql.sock.
Guarde los cambios y luego continúe con el siguiente paso.
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(/.*)?" # restorecon -R / mnt / mysql-data.
A continuación, reinicie el servicio MySQL.
En SystemD # systemctl detener mariadb. # systemctl is-active mariadb En SysVInit # servicio mysqld stop. # service mysqld status O # service mysql stop. # estado del servicio mysql.
Ahora, use el mismo comando que en Paso 1 para verificar la ubicación del nuevo directorio de datos:
# mysql -u root -p -e "SELECCIONAR @@ datadir;"
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;"
¡Felicidades! Ha cambiado correctamente el directorio de datos para MySQL o MariaDB.
En esta publicación, hemos discutido cómo cambiar el directorio de datos en un servidor MySQL o MariaDB que se ejecuta en distribuciones CentOS / RHEL 7 y Ubuntu / Debian.
¿Tiene alguna pregunta o comentario sobre este artículo? No dude en hacérnoslo saber mediante el formulario a continuación: ¡siempre nos alegra saber de usted!