Cómo cambiar un directorio de datos predeterminado de MySQL / MariaDB en Linux
Después de instalar los componentes de una pila LAMP en un servidor CentOS/RHEL 7, hay algunas cosas que puede hacer.
Algunos de ellos tienen que ver con aumentar 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 queramos cambiar el directorio predeterminado datos (/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 se almacena /var
puede colapsarse en un punto, lo que ocasiona que el sistema falle. Otro escenario donde cambiar el directorio predeterminado es cuando tenemos un recurso compartido de red dedicado que queremos usar para almacenar nuestros datos reales.
Por este motivo, 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 de Ubuntu/Debian.
Aunque usaremos MariaDB , los conceptos explicados y los pasos seguidos en este artículo se aplican tanto a MySQL como a MariaDB , a menos que se indique lo contrario.
Cambiar el directorio de datos predeterminado de MySQL / MariaDB
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 con el siguiente comando. No se limite a asumir que sigue siendo Después de ingresar la contraseña de MySQL, la salida debe ser similar a. Para evitar la corrupción de datos, detenga el servicio si se está ejecutando actualmente antes de continuar. Use los comandos conocidos systemd para hacerlo: Si el servicio se ha desactivado, la salida del último comando debe ser la siguiente: Luego copie recursivamente el contenido de Edite el archivo de configuración ( Localice las secciones 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 A continuación reinicie el servicio MySQL. Ahora, use el mismo comando que en Paso 1 para verificar la ubicación del nuevo directorio de datos: Inicie sesión en MariaDB, cree una nueva base de datos y luego verifique ¡Felicidades! Has cambiado exitosamente 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 CentOS/RHEL 7 y distribuciones de Ubuntu/Debian. ¿Tiene alguna pregunta o comentario sobre este artículo? No dude en hacérnoslo saber utilizando el formulario que aparece a continuación. ¡Siempre nos alegra saber de usted!# mkdir /mnt/mysql-data
# chown -R mysql:mysql /mnt/mysql-data
/var/lib/mysql
, ya que podría haberse cambiado en el pasado.# mysql -u root -p -e "SELECT @@datadir;"
------------- On SystemD -------------
# systemctl stop mariadb
# systemctl is-active mariadb
------------- On SysVInit -------------
# service mysqld stop
# service mysqld status
OR
# service mysql stop
# service mysql status
/var/lib/mysql
a /mnt/mysql-data
conservando los permisos y las marcas de tiempo originales:# cp -R -p /var/lib/mysql/* /mnt/mysql-data
my.cnf
) para indicar el nuevo directorio de datos (/mnt/mysql-data
en este caso).# vi /etc/my.conf
OR
# vi /etc/mysql/my.conf
[mysqld]
y [client]
y realice los siguientes cambios:Under [mysqld]:
datadir=/mnt/mysql-data
socket=/mnt/mysql-data/mysql.sock
Under [client]:
port=3306
socket=/mnt/mysql-data/mysql.sock
/mnt/mysql-data
antes de reiniciar MariaDB.# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?"
# restorecon -R /mnt/mysql-data
------------- On SystemD -------------
# systemctl stop mariadb
# systemctl is-active mariadb
------------- On SysVInit -------------
# service mysqld stop
# service mysqld status
OR
# service mysql stop
# service mysql status
# mysql -u root -p -e "SELECT @@datadir;"
/mnt/mysql-data
:# mysql -u root -p -e "CREATE DATABASE tecmint;"