Ufic

Blog personale di V. Marco Carnazzo

Come creare il mirror di un database MySql

In uno scenario di utilizzo reale di un database MySql (per siti, applicazioni web ecc.), la sicurezza dei dati è estremamente importante.

Per avere una sicurezza in più, è consigliabile duplicare i dati in un secondo server, attraverso un metodo chiamato replication, cioé la configurazione di MySql affinché da solo effettui tale duplicazione (nota bene che non è sincrona!).

Qui di seguito viene spiegato come fare. Per master si intenderà il server che fa il lavoro vero; mentre per slave si intenderà il server che contiene i dati duplicati (e che di fatto non viene mai utilizzato se non in caso di catastrofi). Fondamentalmente funziona così: lo slave interroga periodicamente (molto spesso) il master chiedendogli il suo file di log; in base al log lo slave capirà quali azioni sono state effettuate “in sua assenza” e le applicherà anche su se stesso.

La configurazione non è semplicissima e in alcuni punti sarà necessario interrompere il servizio, quindi fatelo solo quando il master non è utilizzato o, se proprio non si può fare diversamente, in orari strani e/o nel weekend.

Fase 1: Configurazione

Nel master:

1. Crea l’utente <slave_user> (con password <slave_password>) con il quale lo slave si loggherà. Per sicurezza gli si daranno solo i privilegi per la replicazione.
GRANT REPLICATION SLAVE ON *.* TO '<slave_user>'@'%.mydomain.com' IDENTIFIED BY '<slave_password>';

2. Apri il file /etc/mysql/my.cnf e vai alla sezione [mysqld]

3. Assicurati che sia configurato il log binario, cioé che ci sia la riga:
log-bin=mysql-bin

4. Sempre nella sezione [mysqld] inserisci la riga
server-id=1

5. Assicurati che la riga skip-networking sia commentata
# skip-networking

Nello slave:

1. Apri il file /etc/mysql/my.cnf e vai alla sezione [mysqld]

2. Aggiungi la riga
server-id=2

Fase 2: Lettura del punto corrente del log binario

Nel master:

1. Fai finire tutte le operazioni correnti. Da MySql:
FLUSH TABLES WITH READ LOCK;
Nb: Questo bloccherà temporaneamente l’uso del database!!!

2. Mostra il punto corrente. Da MySql:
SHOW MASTER STATUS

3. Segnati la risposta ricevuta (in particolare log_file e log_position)

4. Sblocca il database. Da MySql:
UNLOCK TABLES;

Fase 3: Prima sincronizzazione “a mano” con mysqldump

Nel master:

1. Blocca il database:
FLUSH TABLES WITH READ LOCK;
Nb: Questo bloccherà temporaneamente l’uso del database!!!

2. Fare il dump di tutto
mysqldump --all-databases --lock-all-tables >dbdump.db

3. Sblocca il database. Da MySql:
UNLOCK TABLES;

4. Copia (possibilmente con scp o comunque via SSH) il file dbdump.db nello slave

Nello slave riversa il dump effettuato precedentemente:
sudo mysql -uroot -p < dbdump.db

Fase 3bis: Prima sincronizzazione “a mano” in modo grezzo

Se il db è molto grande è più efficiente copiare brutalmente la cartella che contiene i dati di MySql da un db all’altro.

Nel master:

1. Ferma MySql
sudo /etc/init.d/mysql stop

2. Compatta tutti i dati
tar zcvf mysql.tgz /var/lib/mysql

3. Copia (possibilmente con scp o comunque via SSH) il file mysql.tgz nello slave

4. Riavvia MySql
sudo /etc/init.d/mysql start

Nello slave:

1. Ferma MySql
sudo /etc/init.d/mysql stop

2. Rimuovi la cartella dei dati attuale
sudo rm -rf /var/lib/mysql

3. Scompatta la versione nuova dei dati
sudo tar zxvf mysql.tgz

4. Riavvia il database
sudo /etc/init.d/mysql start

Fase 4: Avviare la sincronizzazione

Nello slave indicare come connettersi al master e dove leggere le informazioni. Da MySql:
CHANGE MASTER TO MASTER_HOST='<master_host_name>', MASTER_USER='<slave_user>', MASTER_PASSWORD='<slave_password>', MASTER_LOG_FILE='<recorded_log_file_name>', MASTER_LOG_POS=<recorded_log_position>

Ecco fatto!

Vi consiglio comunque periodicamente di tenere d’occhio lo slave per assicurarvi che la replicazione stia continuando (in passato mi ha fatto brutti scherzi). Semplicemente (da MySql dello slave) chiedete:

SLAVE STATUS;

Buona fortuna ;)

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter

Chi mi consiglia un portatile?

Il mio primo portatile

Il mio primo portatile

Malika è il nome di una donna bellissima, che ho visto una sola volta nella mia vita, circa dieci anni fa, fugacemente e senza nessuna implicazione; e che quasi sicuramente non vedrò mai più.Malika da allora è anche il nome del mio portatile.

Entrambe le Malika fanno parte del passato: alla prima non ho mai pensato seriamente e tanto meno lo faccio ora, sposato e con prole. La seconda mi è stata accanto fedelmente per anni ma adesso sta lentamente morendo di vecchiaia. Con buona pace dei cattolici, si sta avvicinando il momento di staccare la spina.

Il problema è che, nonostante io sia un informatico, ho sempre amato il software e avuto a noia l’hardware1 e quindi non sono per niente aggiornato sullo stato attuale del mercato.

Dunque: chi mi consiglia un portatile nuovo?

Le caratteristiche auspicabili:

  • La ventola sia facilmente smontabile: molti dei problemi attuali di Malika derivano da surriscaldamento; sarebbe un problema risolvibile pulendo la ventola ma è quasi impossibile staccarla.
  • Sia compatibile al 100% con Ubuntu: questa è una condizione imprescindibile.
  • Possibilmente che non abbia nessun sistema operativo installato ma non è una caratteristica particolarmente rilevante: mio malgrado, per testare alcune cose di lavoro a volte sono costretto a usare anche Windows.
  • L’azienda produttrice abbia un minimo di codice etico riguardo l’ambiente e i diritti dei lavoratori, anche se temo che nel mondo dell’elettronica sia cosa rara :(
  • Abbia un video “riposante”: sto molte ore al computer e sono ipermetrope.
  • 3 ingressi USB, 1 ingresso SD Card, wireless

Un sentito grazie a chi potrà darmi dei consigli ;)

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter
  1. ”Distinzione tra hardware e software: l’hardware è quello che puoi prendere a calci, il software lo puoi solo maledire” (Prof. Renzo Davoli) []

Saviano chi?

Roberto Saviano

Roberto Saviano, dall'archivio di Internazionale

Ultimamente mi è capitato di imbattermi in alcuni esponenti del gruppo di persone che, con una generalizzazione vagamente xenofoba, solitamente definisco “italiani medi”. E mi sono reso conto che non sapevano chi fosse Roberto Saviano.

Sia chiaro: non la considero una colpa, non scrivo questo articolo per gridare allo scandalo, né per commiserare chicchessia. Scrivo questo articolo semplicemente in preda a un disarmato stupore: pensavo che chiunque sapesse chi è Saviano, anche solo per sbaglio (la televisione ne ha parlato in seguito al libro, al film, allo spettacolo teatrale, alla candidatura all’oscar…), così come io so chi è Alessandra Amoroso1 o Afef Jnifen2.

Non voglio qui parlare di camorra, di informazione o di politica. Voglio parlare di solipsismo3.

Se quando parlo o scrivo non posso dare per scontato che il destinatario del mio messaggio sappia chi è “Saviano”, allora cosa posso dare per scontato?

Se non posso evitare incisi vicino alla parola “Saviano”4, allora quando posso evitarli5?

Ma soprattutto: se io e l’italiano medio non condividiamo conoscenze così di base come “Saviano”, allora di fatto viviamo in due realtà diverse. Come possiamo dialogare?6

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter
  1. Giovane cantante portata al successo dalla trasmissione televisiva Amici []
  2. Showgirl che, per inciso, sostiene che Saviano abbia macchiato l’immagine dell’Italia nel mondo []
  3. Credenza filosofica che mi scoccia qui spiegare ma che permea la mia vita []
  4. Scrittore – giornalista italiano contemporaneo, autore del bestseller “Gomorra”, libro con il quale ha ottenuto la fama del grande pubblico e l’odio dei camorristi []
  5. Posso evitarli dopo la parola “evitarli”? []
  6. Il punto interrogativo è un segno di interpunzione che viene posposto a ogni domanda []

Come far dialogare Facebook e Wordpress

Wordbook

Continua la serie di articoli “Come perdere tempo con Wordpress” :) .
Oggi presentiamo come far “dialogare” Facebook con Wordpress.
Perché? Perché voglio che la mia “casa virtuale” sia qui e non su Facebook: voglio che tutti i miei contenuti siano qui e che Facebook semplicemente li veicoli ai miei “amici”.

Innanzitutto è possibile mostrare gli articoli del proprio blog su Facebook: basta installare e configurare il plugin di Wordpress Wordbook. L’installazione è quella tipica di un plugin per Wordpress. Durante la sua configurazione viene installato sul proprio account Facebook una relativa applicazione FB che permette la comunicazione. C’è poco da dire: fa quasi tutto da solo.

Inoltre, se non si sono impostate particolari restrizioni sui commenti, i commenti ricevuti su Facebook ai propri articoli vengono automaticamente mostrati anche nel proprio blog.

Certo si può avere qualcosa di simile anche impostando il Feed RSS del proprio blog come fonte per le Note di Facebook ma il risultato finale è più instabile (articoli che compaiono e scompaiono), più brutto esteticamente e non si avrà l’aggiornamento dei propri commenti descritto sopra.

Un’altra cosa che si può fare è aggiornare il proprio stato su Facebook semplicemente inserendo un nuovo articolo nel proprio blog. Per far questo bisogna:

  • Creare una categoria apposita nel proprio blog (a meno che non si voglia che TUTTI gli articoli aggiornino lo stato
  • Iscriversi gratuitamente a TwitterFeed (servizio nato per Twitter ma che ora supporta anche Facebook)
  • Impostare come sorgente il proprio feed RSS, specifico per la categoria che si vuole. Sì perché Wordpress permette anche i feed RSS di una specifica categoria. L’URL è http://www.ilpropriosito.it/category/nome-della-categoria/feed.

Un’altra cosa che si può fare è impostare per il proprio blog un tema che rende tutto MOLTO simile a Facebook: il Facebook Layout Wordpress Theme.

Il risultato finale è questo (un sottoblog inutile e vanaglorioso con tutti i miei fatti personali, alla faccia della privacy).

Ps: Questo articolo parte già inutile di per sé. Ma lo diventa ancora di più perché, con l’arrivo di Google Wave, Facebook passerà di moda :D .

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter

Come passare da Wordpress a Wordpress MU

Nei due articoli precedenti ho accennato cos’è Wordpress MU e come si installa su Aruba.

Ora vediamo come migrare i contenuti di un blog fatto con Wordpress in uno fatto con Wordpress MU.

Presuppongo che Wordpress MU sia installato e il nuovo blog (ancora vuoto) sia stato creato.

Probabilmente ci sono plugin che fanno al caso nostro ma perché semplificarsi la vita quando ci si può sporcare le mani con un po’ di SQL? :)

La premessa ovvia ma necessaria in questi casi è sempre: fate il backup di tutto! (sia del blog vecchio sia del blog nuovo). Non prendetevela con me se succede qualche casino e non va più niente :p

Detto questo, dal blog vecchio esportate le seguenti tabelle:

  • wp_comments
  • wp_links
  • wp_postmeta
  • wp_posts
  • wp_terms
  • wp_term_relationships
  • wp_term_taxonomy

Ora entrate nel vostro blog nuovo e cliccate sulla voce di menu Amministra sito / Blog. Vi verrà mostrata la lista di tutti i blog attualmente installati. Cercate la riga del vostro blog in questione e segnatevi il numerino sulla sinistra: è l’ID del vostro blog.

Le tabelle SQL di Wordpress MU sono uguali a quelle di Wordpress con l’unica differenza che è indicato nel nome l’ID del blog a cui si riferiscono. Se per esempio il nostro blog ha ID 2, le sue tabelle saranno wp_2_comments, wp_2_links ecc.

Se dunque il vostro ID è ad esempio 2, nel database nuovo dovete cancellare le tabelle:

  • wp_2_comments
  • wp_2_links
  • wp_2_postmeta
  • wp_2_posts
  • wp_2_terms
  • wp_2_term_relationships
  • wp_2_term_taxonomy

Ora importate le tabelle del database vecchio (precedentemente esportate) nel database nuovo e rinominatele affinché seguano lo standard di Wordpress MU wp_<ID>_ecc.

Fatto. E’ più facile a farsi che a dirsi :)

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter

Come installare Wordpress MU su Aruba

WWWordpressAruba è un’azienda che offre hosting web. Ha un sito orrendo, dà un servizio con parecchie limitazioni ma ha il grande vantaggio di essere molto a buon mercato. Questo blog, ad esempio, è ospitato da Aruba.

Una delle sue limitazioni è che l’URL del proprio sito ospitato deve assolutamente iniziare con www.

Wordpress MU, che ho installato da poco, vuole che il sito dov’è installato sia senza www (ok, avete ragione, ma siete dei talebani).

Come risolvere il conflitto? Vergognosamente a manazza:

  • Scaricate e scompattate Wordpress MU. Al momento NON installatelo!
  • Aprite il file htaccess.dist e aggiungete le seguenti righe (ammesso che il vostro sito si chiami esempio.it e la cartella principale di Wordpress MU si chiami blogs):
    RewriteCond %{HTTP_HOST} ^esempio\.it$ [NC]
    RewriteRule ^(.*)$ http://www.esempio.it/blogs/$1 [R=301,L]
  • Aprite il file index-install.php e commentate tutte le occorrenze di
    if( substr( $domain, 0, 4 ) == 'www.' )
    $domain = substr( $domain, 4 );
  • Fate la stessa cosa con il file wpmu-settings.php.
  • Ora e solo ora installate Wordpress MU. Ricordatevi di fare l’installazione per le sottocartelle e non quella per i sottodomini! Altrimenti non funzionerà niente e ve la prenderete con me.

E’ tutto. E’ macchinoso ma l’esistenza stessa di questo blog dimostra che è fattibile :)

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter

Ufic.it è passato a Wordpress MU

Logo Wordpress MUCome anticipato, questo blog è passato da Wordpress a Wordpress MU.

Premessa: Quanto segue ha un senso solo per i geek con poca vita sociale come me :) .

Wordpress è il più famoso motore opensource per la gestione di un blog.

Wordpress MU più o meno è la stessa cosa (e gran parte del codice sorgente è comune) ma permette, con lo stesso motore, di gestire più blog.

Perché probabilmente non lo sapete, ma ufic.it oltre a questo blog, ospita alcuni amici e alcuni blog “nascosti” (che uso per catalogare alcuni documenti e alcune foto personali oppure semplicemente per fare “esperimenti”).

Grazie a Wordpress MU posso gestire l’aggiornamento di tutti i blog in un unico colpo.

Cosa dite? Mai più senza? Eh già… :p

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter

Lavori in corso

Omino LegoQuesta settimana (forse anche la prossima) questo blog potrebbe non essere sempre raggiungibile.
Sto passando da Wordpress a Wordpress MU.
Se funzionerà spiegherò il perché e il come ho fatto.
Cercate di sopravvivere :)

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter

Non funzionano i breakpoint di Eclipse con Java 6u14

Pericolo bug

Pericolo bug

Usate Eclipse e da un po’ di tempo non vi funzionano più i breakpoint?

Potrebbero essere i fantasmi ma, se avete aggiornato Java (su Linux o su Windows poco importa) e adesso state usando la versione 6u14, forse il problema è proprio questo.

Se siete ancora in tempo, fermatevi e non fate quel maledetto aggiornamento!

Se invece la frittata l’avete fatta, seguite i seguenti passi per sistemare il tutto1:

  • Scaricate la versione 6u13 di Java (la versione precedente).
  • Date i permessi di esecuzione al file bin scaricato ed eseguitelo
  • Accettate la licenza e fategli scompattare il tutto
  • Se avete un minimo di senso d’ordine, spostate la cartella creata su /usr/lib/jvm
  • Rimuovete il link simbolico java-6-sun e ricreatelo affinché punti alla versione 13
  • Aprite Eclipse e aggiornate la JRE. Cioé andate su Windows/Preferences e poi Java/Installed JRE, aggiungete la JRE che avete appena installato e impostatela come predefinita.
  • Riavviate Eclipse e fate un bel Project/Clean in modo che i progetti vengano ricompilati
  • Ricordatevi di reimpostare il tutto quando uscirà una nuova versione di Java che risolve il problema (speramm’…)
Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter
  1. I passi sono per Linux. Se avete Windows il concetto e lo stesso però vi arrangiate da soli :) []

Come installare Ubuntu ai propri genitori

Da freepenguin.int

Tratto da Free Penguin

Quest’estate ho invaso un nuovo computer con Ubuntu Linux: il computer fisso dei miei genitori.
Ecco come e perché l’ho fatto…

Intanto perché…
Per non ricevere più telefonate del tipo “Ho il virus tal dei tali, che antivirus mi consigli?” oppure “A un certo punto inspiegabilmente il computer ha smesso di accendersi, cosa posso fare?”.
NB: Non è detto che prima o poi non spunteranno virus per Linux (al momento nessuno ha interesse a farlo dato lo scarso bacino di utenza) ma tendenzialmente (visto che gran parte dei file e dei dispositivi hanno permessi di amministratore) farebbero meno danni. Inoltre non è che non ci siano bug su Linux, ma non mi è mai capitato di avere errori che non avessero una causa comprensibile (mentre su Windows spesso devi affidarti alla fede).

I miei genitori usano il computer fisso come gran parte dei genitori: navigano su Internet, scrivono mail e documenti di testo. Fine.
Mio padre fa anche musica ma per quello usa un portatile ad hoc e il discorso di Linux e musica è ancora lungo e complesso (ma non impossibile).

L’installazione dell’ultima versione di Ubuntu (che non avevo ancora fatto ex novo) è impressionantemente facile. Ha riconosciuto tutto da solo, compreso Alice Adsl (cavo ethernet: credo che con cavo USB si avrebbe qualche problema) e la webcam Microsoft Lifecam (questa non l’avrei proprio detta). Anche il partizionamento del disco (qui metti Ubuntu, qui tieni Windows) è ormai estremamente semplice: prendi il mouse e tiri la partizione che ti interessa per rimpicciolirla o ingrandirla.

Alla fine dell’installazione ho aggiornato il sistema dal terminale1

sudo aptitude update
sudo aptitude safe-upgrade

E ho installato un po’ di pacchetti in più con:

sudo aptitude install <nomepacchetto>

Nome del pacchetto Descrizione
thunderbird Programma per leggere la posta elettronica
flashplugin-nonfree Plugin per vedere gli oggetti Flash (ad esempio i filmati di YouTube)
ubuntu-restricted-extras Metapacchetto che comprende tutte le robe che per beghe legali non possono essere installate subito (per gestire gli MP3, i DVD e robe simili)
rar Compressore di file (i miei lo utilizzano, non so se è ancora diffuso)

Ho installato poi qualche altro pacchetto aggiuntivo di nautilus (il gestore dei file, l’equivalente di Esplora risorse) per semplificargli la vita:

Nome del pacchetto Descrizione
nautilus-wallpaper Poi si può impostare un’immagine come sfondo semplicemente cliccandoci sopra con il tasto destro e cliccando su Set as wallpaper
nautilus-image-converter Poi si possono stringere, allargare e ruotare le immagini direttamente cliccandoci sopra con il tasto destro e cliccando sul corrispondente comando

Infine ho dovuto spiegare loro che:

  • non vedranno più le scritte C:, D: ecc. perchè tutti gli hard disk sono considerati come cartelle dentro /media;
  • ogni chiavetta che viene inserita verrà mostrata nello sfondo (e per toglierla bisogna prima andare nell’icona con il tasto destro e cliccare su Smonta volume);
  • tutti i documenti vengono salvati nella Home, che è un po’ come la cartella Documenti di Windows.

Basta.

Per ora sembrano trovarsi bene :)

Condividi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • PDF
  • Ping.fm
  • Technorati
  • Twitter
  1. Sia chiaro: lo si può fare anche in modalità grafica ma mi sembra sia una perdita tempo :) []