Cambiar El Directorio de Datos de MySQL o MariaDB en CentOS 7
Cambiar El Directorio de Datos de MySQL o MariaDB en CentOS 7
Cambiar El Directorio de Datos de MySQL o MariaDB en CentOS 7
o MariaDB en CentOS 7
Publicado el marzo 12, 2017 Gabriel Canepa
Figura 1 – Cambiar
el directorio de datos de MySQL o MariaDB
El comando anterior debe devolver la palabra inactive como salida si el servicio está en
efecto detenido.
Ahora podemos copiar los datos presentes en /var/lib/mysql al nuevo directorio de datos
(/mnt/datos-mysql, por ejemplo):
1 cp -R -p /var/lib/mysql/* /mnt/datos-mysql
1 [mysql]
2 datadir=/mnt/mysql-data
3 socket=/mnt/mysql-data/mysql.sock
1 [client]
2 port=3306
3 socket=/mnt/mysql-data/mysql.sock
Paso 5 – Agregar el contexto de SELinux necesario para que podamos almacenar los
archivos de las bases de datos en /mnt/datos-mysql, y luego reiniciar el servicio. También
podemos verificar que el directorio de datos haya cambiado utilizando el mismo comando
que en el
Paso 1.
restorecon -R /mnt/mysql-data
https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-
directory-to-a-new-location-on-ubuntu-16-04
https://www.digitalocean.com/community/tutorials/how-to-change-a-mysql-
data-directory-to-a-new-location-on-centos-7
Mover el directorio.
Ya que detuvimos el servicio vamos a realizar una copia del directorio de datos
(/var/lib/mysql en la mayoría de los casos) supongamos que el destino será
/disk2/mysql:
Renombramos el directorio original para evitar que nos de un falso positivo al hacer
la prueba del servicio:
[mysqld]
datadir=/disk2/mysql
socket=/disk2/mysql/mysql.sock
[client]
port=3306
socket=/disk2/mysql.sock
Ahora nos aseguramos que mysql pueda usar en el directorio asignando el contexto de
seguridad:
$ mysql -u root -p
select @@datadir;
+----------------------------+
| @@datadir |
+----------------------------+
| /disk2/mysql/ |
+----------------------------+
1 row in set (0.01 sec)
Configuración Apache-PHP
Esta última parte aplica únicamente si tenemos un webserver apache ejecutando en el mismo
servidor y usando la base de datos.
Es necesario decirle a apache dónde buscar el socket de la base de datos, para esto editamos
los siguientes dos parámetros en el archivo /etc/php.ini
MYSQL_PDO
pdo_mysql.default_socket=/disk2/mysql/mysql.sockMYSQL
mysql.default_socket = /disk2/mysql/mysql.sock