Se vogliamo creare un bilanciatore con 2 o più macchine virtuali che serviranno da database, sarà necessario mantenere i dati del DB sincronizzati tra tutte le VM all' interno del cluster.

Per prima cosa creiamo due o più macchine virtuali con un' installazione base di CentOS 64bit e assegnamo un indirizzo IP pubblico e uno privato

Installiamo, per ogni VM il database MySQL:

SSH:

 yum -y install mysql mysql-server
chkconfig --levels 235 mysqld on
service mysqld start










Impostiamo la nostra password di root:

SSH:

mysqladmin -u root password MYNEWPASSWORD








Ora creiamo un database nella nostra VM primaria, per esempio diamo il nome "DBreplicated" e popoliamolo con le nostre tabelle e assegnamo i pieni permessi all' utente.

Entriamo come root:

SSH:

mysql -u root -p








e diamo pieni privilegi sul database DBreplicated

SSH:

GRANT ALL ON DBreplicated.* TO 'root'@'%' IDENTIFIED BY 'MYNEWPASSWORD';








Ora modifichiamo il file /etc/my.cnf (sempre sulla VM primaria):


my.cnf:
server-id               = 1
log-bin                 = mysql-bin
log-bin-index        = mysql-bin.index
expire-logs-days   = 10
max-binlog-size    = 100M
binlog-do-db        = DBreplicated











riavviamo MySQL


SSH:

service mysqld restart









Ora creiamo l' utente per la gestione della replica

SSH:

mysql -u root -p
create user userslave;
create user 'userslave'@'*';
grant replication slave on *.* to userslave identified by 'ANEWPASSOWRD';
flush privileges;











Ora è necessario sapere il punto esatto del master


SSH:

mysql -u root -p
show master status









Otterrete un messaggio simile a questo:

SSH:

*************************** 1. row *************************** File: mysql-bin.000001
Position: 99
Binlog_Do_DB: powerdns
Binlog_Ignore_DB: 1
row in set (0.00 sec)

















Segnatevi la posizione e ora entrate nella seconda VM . Installate MySQL con yum come sopra e popolate il database con gli stessi dati della VM primaria.

Modificate il file /etc/my.cnf come segue (se avete più di 2 vm in replica ricordatevi di cambiare il server-id con un numero univoco)


SSH:

server-id=2
master-connect-retry=60
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
replicate-do-db=DBreplicated












e riavviamo il mysql con

SSH:

service mysqld restart









Impostiamo ora la richiesta di replica:

SSH:
mysql -u root -p

change master to
    master_host='VM_IP_PRIMARIO',
    master_user='DBreplicated',
    master_password='ANEWPASSOWRD',
    master_log_file='mysql-bin.000001',
    master_log_pos=99;
start slave;















Possiamo ora verificare che la replica sia in corso con


SSH:

show slave status 










Hai trovato questa risposta utile? 1 Utenti hanno trovato utile questa risposta (5 Voti)