Differences between revisions 2 and 3
Revision 2 as of 2011-07-04 14:14:05
Size: 3192
Editor: Kurgan
Comment:
Revision 3 as of 2011-08-11 15:49:44
Size: 3700
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Configurazioni non banali di mysql (debian Squeeze) Note varie su mysql e dintorni (debian Squeeze)


== Backup ==

Uno strumento semplice di backup per mysql e` "automysqlbackup", il cui pacchetto e` disponibile in Squeeze. Dopo averlo installato, modificare /etc/default/automysqlbackup per adattarlo alle proprie esigenze. La configurazione di default salva tutti i database una volta al giorno, tenendo anche una copia alla settimana e una al mese. L'unica cosa da cambiare e` il percorso di salvataggio che e` definito con il parametro "BACKUPDIR", nel caso in cui quello di default non vada bene.

Mysql

Note varie su mysql e dintorni (debian Squeeze)

Backup

Uno strumento semplice di backup per mysql e` "automysqlbackup", il cui pacchetto e` disponibile in Squeeze. Dopo averlo installato, modificare /etc/default/automysqlbackup per adattarlo alle proprie esigenze. La configurazione di default salva tutti i database una volta al giorno, tenendo anche una copia alla settimana e una al mese. L'unica cosa da cambiare e` il percorso di salvataggio che e` definito con il parametro "BACKUPDIR", nel caso in cui quello di default non vada bene.

Replicazione

Qui si spiega come configurare due macchine come master e slave, partendo dalla supposizione che il database master sia vuoto. Se non lo e`, occorre sincronizzare master e slave prima di avviare la replicazione.

Sul server "master", in my.cnf, occorre:

  • togliere il commento dalle righe che riguardano il server-id e log_bin (sono una di fianco all'altra). Il server-id puo` essere qualsiasi numero che non sia duplicato negli slave e non sia zero.
  • consentire la connessione a mysql via lan, quindi in Debian commentare la riga che dice bind-address = 127.0.0.1.

  • impostare il campo binlog_ignore_db o il campo binlog_do_db in modo da replicare solo i database che ci servono (e da non replicare quelli che farebbero danni se fosser replicati). Una impostazione decente per replicare tutto potrebbe essere:

    binlog_ignore_db        = information_schema,mysql,phpmyadmin

Sul server slave (o sui server slave) occorre:

  • togliere il commento dalla riga che riguarda il server-id. Il server-id puo` essere qualsiasi numero che non sia duplicato nell'insieme master ed eventuali altri slave e non sia zero.
  • Facoltativamente (ma e` consigliato per il recovery da crash o corruzioni) scommentare la riga del log_bin (come sul master).
  • consentire la connessione a mysql via lan, quindi in Debian commentare la riga che dice bind-address = 127.0.0.1.

  • IMPORTANTE: cambiare percorso alla tmpdir, impostandola a un path dove un riavvio della macchina NON cancelli i dati, quindi non su /tmp. Potrebbe per esempio essere messa a /var/spool/mysql (che va creata a chownata a mysql.)

Dopo aver riavviato i due mysql sul master e sullo slave, procedere SUL MASTER con la creazione dell'utente che verra` usato dagli slave per la replicazione (uno per tutti quanti o anche uno per ogni slave, a discrezione). Questo utente deve disporre del privilegio di replicazione e deve avere accesso ovviamente dall' ip della/delle macchina/e slave. Se usate phpmyadmin esiste una funzione apposta "replicazione" che indica lo stato della replicazione e consente di creare un utente per la replicazione. Di fatto phpmyadmin crea l'utente cosi`:

CREATE USER 'replicazione'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE , REPLICATION CLIENT ON * . * TO 'replicazione'@'%' IDENTIFIED BY 'password';

A questo punto, procedere SULLO SLAVE a configurare il medesimo per l'accesso al master, si puo` sempre fare da phpmyadmin sullo slave alla voce "replicazione", inserendo uno username, una password e un ip per il server master (l'utente e` quello che abbiamo appena creato sul server master, appunto). Oppure si puo` fare a mano con il comando:

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='master_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS=recorded_log_position;

Fatto questo, occorre riavviare mysql sullo slave e dovremmo essere connessi.

LinuxDebian/MySql (last edited 2024-02-02 09:55:05 by Kurgan)