LinuxParty
La forma más fácil de seguir este tutorial es utilizar un cliente de línea de comandos / cliente SSH (como PuTTY para Windows) y simplemente copiar y pegar los comandos (excepto donde hay que proporcionar información propia como direcciones IP, nombres de host, contraseñas, ...). Esto ayuda a evitar errores tipográficos.
Cómo montar la replicación de base de datos de MySQL
En este tutorial se describe cómo configurar la replicación de bases de datos en MySQL. La replicación MySQL le permite tener una copia exacta de una base de datos desde un servidor maestro en otro servidor (esclavo), y todas las actualizaciones de la base de datos en el servidor principal se replican inmediatamente en la base de datos en el servidor esclavo para que ambas bases de datos están en sintonía. Esto no es una política de copia de seguridad, ya que un accidente emitido mediante el comando DELETE también se llevará a cabo en el esclavo, pero la replicación puede ayudar a proteger contra fallos de hardware.
En este tutorial le mostraré cómo replicar la base de datos exampledb del maestro con la dirección IP 192.168.0.100 a un esclavo. Ambos sistemas (maestro y esclavo) se están ejecutando Debian, sin embargo, la configuración debe aplicarse a casi todas las distribuciones con poca o ninguna modificación.
Ambos sistemas tienen instalado MySQL, y la base de datos exampledb con tablas y datos ya existentes en el maestro, pero no en el esclavo.
Quiero decir primero que esta no es la única manera de crear tal sistema. Hay muchas maneras de lograr este objetivo, pero este es el camino que yo tomo.
1 Configure el Maestro
Primero tenemos que editar el archivo /etc/ mysql/my.cnf. y habilitar la red para MySQL, así MySQL debe escuchar todas las direcciones IP, por lo que comente estas líneas (si existen):
#skip-networking |
Por otra parte tenemos que decirle a MySQL cual base de datos debe escribir los registros (estos registros son usados por el esclavo para ver lo que ha cambiado en el maestro), que archivo de registro debe usar, y hay que especificar que éste servidor MySQL es el maestro. Queremos replicar la base de datos exampledb, por lo que hay poner las siguientes líneas en /etc/mysql/my.cnf:
log-bin = /var/log/mysql/mysql-bin.log |
Luego reinicie MySQL:
/etc/init.d/mysql restart
Tras ingresar a la base de datos MySQL como root y crear un usuario con privilegios de replicación:
mysql -u root -p
Enter password:
Ahora estamos en el shell de MySQL.
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY '<some_password>'; (Replace <some_password> with a real password!)
FLUSH PRIVILEGES;
Siguiente (aún en el shell de MySQL) haga lo siguiente:
USE exampledb;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
El último comando mostrará algo como esto:
+---------------+----------+--------------+------------------+ |
Anote esta información (la de file, y position), le hará falta más adelante en el esclavo!
A continuación dejo el shell de MySQL:
quit;
Hay dos posibilidades para obtener las tablas existentes y los datos de exampledb desde el maestro al esclavo. El primero es hacer un volcado de base de datos, la segunda es utilizar el comando LOAD DATA FROM MASTER, desde el servidor esclavo. Este último tiene una desventaja, la base de datos en el maestro puede bloquearse durante esta operación, por lo que si usted tiene una gran base de datos en un sistema de producción de alto tráfico, esto no es lo que quieres, y te recomiendo seguir el primer método en este caso. Sin embargo, este último método es muy rápido, así que voy a describir los dos aquí.
Si quieres seguir el primer método, entonces haga lo siguiente:
mysqldump -u root -p<password> --opt exampledb > exampledb.sql
(Reemplazar <contraseña> con la contraseña real para el usuario root de MySQL Importante: No hay ningún espacio entre -p y <contraseña>!)
Esto creará un volcado SQL del exampledb en el archivo exampledb.sql. Transfiera este archivo a tu servidor esclavo!
Si quieres usar LOAD DATA FROM MASTER, entonces no hay nada que usted debe hacer en estos momentos.
Finalmente tenemos que abrir las tablas en exampledb:
mysql -u root -p
Enter password:
UNLOCK TABLES;
quit;
Ahora, la configuración en el maestro ha terminado. En el esclavo...
SIGUIENTE: Cómo replicar una de base de datos de MySQL (2 de 2)
-
MySQL
- Cómo instalar el servidor MySQL en Ubuntu Linux
- Cómo deshabilitar el acceso de inicio de sesión root para PhpMyAdmin
- Cómo configurar MariaDB / MySQL con SSL / TLS
- Solucionar cuando ''No puedo entrar en mi (nuevo) phpmyadmin''
- ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
- Error #1045 El servidor MySQL no autorizó su ingreso
- Mytop: una herramienta útil para controlar y monitorizar el rendimiento de MySQL / MariaDB en Linux
- AutoMySQLBackup para crear Backups automáticos en Linux
- Backups tus Bases de Datos MySQL Automáticamente.
- Configurar Servidor MySQL / MariaDB (para alto rendimiento)
- Creando Backups automáticos de MySQL con AutoMySQLBackup en Ubuntu 9.10
- Cómo Establecer una balanceador de Carga de MySQL en Cluster con MySQL 5.1
- Cómo configurar MySQL 5 con balanceo de carga en clúster
- MySQL / Galera permite tener un cluster de servidores MySQL sincronizados.
- Crear copias de seguridad MySQL en Ubuntu con mylvmbackup