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 |
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 |
Ora è necessario sapere il punto esatto del master
SSH: mysql -u root -p |
Otterrete un messaggio simile a questo:
SSH: *************************** 1. row *************************** File: mysql-bin.000001 |
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 |
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 |