Alcuni appunti presi http://www.azns.it/2011/04/13/due-server-mysql-in-replica-circolare-master-master/ per configurare un mysql in replica circolare master-master in modo da scalare.
Configurazione server 1:
/etc/mysql/conf.d/replica.cnf
[mysqld]
bind-address = 0.0.0.0
server-id = 10
auto_increment_increment = 10
auto_increment_offset = 1
master-host = server2.dominio.local
master-user = replicauser
master-password = replicapass
log_bin = /var/log/mysql/mysql-bin.log
binlog_ignore_db = mysql
Configurazione server 2:
/etc/mysql/conf.d/replica.cnf
[mysqld]
bind-address = 0.0.0.0
server-id = 20
auto_increment_increment = 10
auto_increment_offset = 2
master-host = server1.dominio.local
master-user = replicauser
master-password = replicapass
log_bin = /var/log/mysql/mysql-bin.log
binlog_ignore_db = mysql
Riavviare mysql su entrambi i server e impartire il seguente comando da console:
CREATE USER 'replicauser'@'%.san.local' IDENTIFIED BY 'replicapass';
GRANT replication slave ON *.* TO 'replicauser'@'%.dominio.local';
START slave;
SHOW slave STATUS\G;
Informatica mysql, replica, scalare
Alcuni appunti su come ho ottimizzato mysql sul mio miniserverino domestico debian con 256MByte di ram
Modificare /etc/mysql/my.cnf e modificare come segue:
skip-innodb # Disabilita il supporto a innodb
query_cache_limit = 1M # Valore da 1M a 4M, abbassare se swappa
query_cache_size = 8M # Rapporto tra quantità di ram e 16 (256MB/16), il valore calcolare sarebbe stato 16 ma io l'ho comunque abbassato
Ho fatto riferimento alla guida riportata qui sotto dove vengono spiegati molti altri parametri da cambiare. Io cambiando i tre valori qui sopra sono riuscito a dimezzare l’utilizzo della ram, da 100MB circa, a 48MB.
http://www.valent-blog.eu/2009/02/16/ottimizzazione-di-mysql/
Informatica debian, foss, linux, mysql
Nel’ormai vecchio post Asus WL500gP v2 …… addio !!! dichiaravo di avere sostituito l’Asus wl-500gp v2, su cui appoggiavano vari servizi della rete casaligna, in favore di un altro oggetto da me ambito da diverso tempo, lasciando l’identità di quest ultimo avvolta nel mistero.
Purtroppo sommerso da impegli familiari e lavorativi non ho potuto fare luce sull’identità del oggetto misterioso e soltanto adesso ho trovato un po di tempo per dare qualce spiegazione.
L’oggetto è un eBox-3853, distribuito da Sintekno. L’ho acquistato su eBay completo di harddisk da 80GByte e doppio alimentatore per 110 €. Direi un prezzo molto interessante tenuto conto che nuovo si aggira intorno ai 250 € più iva (penso senza harddisk).
Si distingue per essere un mini pc fanless a basso consumo di cui mi ha stupito molto il case completamente in alluminio che appare di una solidità veramente unica.
Prosegui la lettura…
Informatica amule, apache, Asus WL500gP v2, cups, debian, ebox, foss, linux, mysql, nfs, php, samba, thin client
Mysql mette a disposizione la funzione rand() la quele genera un valore in virgola mobile con risultati che possono variare da 0 a 1.
La funzione può essere utilizzata anche per fare estrarre a una SELECT dei record in ordine casuale.
Nel seguente esempio abbiamo una tabella con la seguente struttura:
CREATE TABLE `province_comuni` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`provincia` VARCHAR( 2 ) NOT NULL ,
`comune` VARCHAR( 50 ) NOT NULL
)
da cui vogliamo estrarre 10 comuni casualmente e lo faremo con la seguente query:
SELECT comune
FROM province_comuni
ORDER BY rand( )
LIMIT 10
Volendo estrarre casualmente 10 comuni di 10 province diverse anch’esse estratte accaso potremo pensare erroneamente che la seguente query possa funzionare:
SELECT comune, provincia
FROM province_comuni
GROUP BY provincia
ORDER BY rand( )
LIMIT 10
questa raggruppa per provincia le quali vengono estratte a caso ma i comuni di ognuna d essa manterranno un ordinamento non casuale, questo perché nella SELECT viene eseguito prima il GROUP BY e soltanto dopo l’ORDER BY.
Il problema si risolve facendo prima una SELECT ordinata a due livelli, per provincia e per caso (ORDER BY provincia, rand() ) sulla quale poi eseguiremo un’ulteriore SELECT raggruppando il tutto per provincia e ordinando in modo random:
SELECT *
FROM (
SELECT *
FROM province_comuni
ORDER BY provincia, rand( )
) AS tmp_rand
GROUP BY provincia
ORDER BY rand( )
LIMIT 10
Informatica foss, group by, mysql, order by, rand(), random
E’ possibile estrarre in una unica query totali e subtotali utilizzando l’operatore WITH ROLLUP. I campi di cui viene mostrato il subtotale vengono riportati con valore null.
Di seguito un esempio che recupera le visite del blog nel mese di maggio suddivise per os e browser con totale generale e subtotale per os.
SELECT os, browser, COUNT( * )
FROM `wp_statpress`
WHERE os <> ''
AND browser <> ''
AND DATE >= "20090501"
AND DATE <= "20090531"
GROUP BY os, browser
WITH ROLLUP
| os |
browser |
count( * ) |
| Debian Linux |
Epiphany |
2 |
| Debian Linux |
Firefox 3 |
44 |
| Debian Linux |
Iceweasel |
209 |
| Debian Linux |
Internet Explorer 7 |
3 |
| Debian Linux |
Links |
1 |
| Debian Linux |
NULL |
259 |
| iPhone |
Safari |
20 |
| iPhone |
NULL |
20 |
| Linux |
Chrome |
2 |
| Linux |
Epiphany |
2 |
| Linux |
Firefox |
11 |
| Linux |
Firefox 2 |
36 |
| Linux |
Firefox 3 |
335 |
| Linux |
Generic Gecko |
26 |
| Linux |
Iceweasel |
2 |
| Linux |
Konqueror |
16 |
| Linux |
Mozilla Minefield |
5 |
| Linux |
Opera |
20 |
| Linux |
Safari |
1 |
| Linux |
Thunderbird |
159 |
| Linux |
NULL |
615 |
| Mac OS X |
Firefox 2 |
1 |
| Mac OS X |
Firefox 3 |
151 |
| Mac OS X |
Opera |
2 |
| Mac OS X |
Safari |
154 |
| Mac OS X |
NULL |
308 |
| Suse Linux |
Firefox 3 |
27 |
| Suse Linux |
SeaMonkey |
1 |
| Suse Linux |
NULL |
28 |
| Symbian |
Safari |
13 |
| Symbian |
NULL |
13 |
| Ubuntu Linux |
Firefox 2 |
37 |
| Ubuntu Linux |
Firefox 3 |
1058 |
| Ubuntu Linux |
Mozilla Minefield |
2 |
| Ubuntu Linux |
NULL |
1097 |
| Windows 2000 |
Firefox 2 |
3 |
| Windows 2000 |
Firefox 3 |
2 |
| Windows 2000 |
Internet Explorer 5 |
4 |
| Windows 2000 |
Internet Explorer 6 |
67 |
| Windows 2000 |
Opera |
4 |
| Windows 2000 |
NULL |
80 |
| Windows 95 |
Internet Explorer 4 |
341 |
| Windows 95 |
Internet Explorer 5 |
4 |
| Windows 95 |
NULL |
345 |
| Windows CE |
Internet Explorer 4 |
1 |
| Windows CE |
Internet Explorer 6 |
2 |
| Windows CE |
NULL |
3 |
| Windows ME |
Internet Explorer 6 |
9 |
| Windows ME |
NULL |
9 |
| Windows NT 4 |
Chrome |
2 |
| Windows NT 4 |
Firefox 3 |
68 |
| Windows NT 4 |
Internet Explorer |
1 |
| Windows NT 4 |
Internet Explorer 5 |
2 |
| Windows NT 4 |
Internet Explorer 6 |
3 |
| Windows NT 4 |
Internet Explorer 8 |
22 |
| Windows NT 4 |
Opera |
1 |
| Windows NT 4 |
NULL |
99 |
| Windows Server 2003 |
Firefox 3 |
17 |
| Windows Server 2003 |
Internet Explorer 6 |
18 |
| Windows Server 2003 |
Internet Explorer 7 |
51 |
| Windows Server 2003 |
SeaMonkey |
1 |
| Windows Server 2003 |
NULL |
87 |
| Windows Vista |
Chrome |
48 |
| Windows Vista |
Firefox 2 |
11 |
| Windows Vista |
Firefox 3 |
403 |
| Windows Vista |
Internet Explorer 7 |
87 |
| Windows Vista |
Internet Explorer 8 |
65 |
| Windows Vista |
Safari |
2 |
| Windows Vista |
NULL |
616 |
| Windows XP |
Chrome |
78 |
| Windows XP |
Firefox |
4 |
| Windows XP |
Firefox 2 |
357 |
| Windows XP |
Firefox 3 |
1817 |
| Windows XP |
Generic Gecko |
1 |
| Windows XP |
Internet Explorer 6 |
3123 |
| Windows XP |
Internet Explorer 7 |
780 |
| Windows XP |
Internet Explorer 8 |
140 |
| Windows XP |
K-Meleon |
1 |
| Windows XP |
Opera |
144 |
| Windows XP |
Thunderbird |
28 |
| Windows XP |
NULL |
6473 |
| NULL |
NULL |
10052 |
| os |
browser |
count( * ) |
| Debian Linux |
Epiphany |
2 |
| Debian Linux |
Firefox 3 |
44 |
| Debian Linux |
Iceweasel |
209 |
| Debian Linux |
Internet Explorer 7 |
3 |
| Debian Linux |
Links |
1 |
| Debian Linux |
NULL |
259 |
| iPhone |
Safari |
20 |
| iPhone |
NULL |
20 |
| Linux |
Chrome |
2 |
| Linux |
Epiphany |
2 |
| Linux |
Firefox |
11 |
| Linux |
Firefox 2 |
36 |
| Linux |
Firefox 3 |
335 |
| Linux |
Generic Gecko |
26 |
| Linux |
Iceweasel |
2 |
| Linux |
Konqueror |
16 |
| Linux |
Mozilla Minefield |
5 |
| Linux |
Opera |
20 |
| Linux |
Safari |
1 |
| Linux |
Thunderbird |
159 |
| Linux |
NULL |
615 |
| Mac OS X |
Firefox 2 |
1 |
| Mac OS X |
Firefox 3 |
151 |
| Mac OS X |
Opera |
2 |
| Mac OS X |
Safari |
154 |
| Mac OS X |
NULL |
308 |
| Suse Linux |
Firefox 3 |
27 |
| Suse Linux |
SeaMonkey |
1 |
| Suse Linux |
NULL |
28 |
| Symbian |
Safari |
13 |
| Symbian |
NULL |
13 |
| Ubuntu Linux |
Firefox 2 |
37 |
| Ubuntu Linux |
Firefox 3 |
1058 |
| Ubuntu Linux |
Mozilla Minefield |
2 |
| Ubuntu Linux |
NULL |
1097 |
| Windows 2000 |
Firefox 2 |
3 |
| Windows 2000 |
Firefox 3 |
2 |
| Windows 2000 |
Internet Explorer 5 |
4 |
| Windows 2000 |
Internet Explorer 6 |
67 |
| Windows 2000 |
Opera |
4 |
| Windows 2000 |
NULL |
80 |
| Windows 95 |
Internet Explorer 4 |
341 |
| Windows 95 |
Internet Explorer 5 |
4 |
| Windows 95 |
NULL |
345 |
| Windows CE |
Internet Explorer 4 |
1 |
| Windows CE |
Internet Explorer 6 |
2 |
| Windows CE |
NULL |
3 |
| Windows ME |
Internet Explorer 6 |
9 |
| Windows ME |
NULL |
9 |
| Windows NT 4 |
Chrome |
2 |
| Windows NT 4 |
Firefox 3 |
68 |
| Windows NT 4 |
Internet Explorer |
1 |
| Windows NT 4 |
Internet Explorer 5 |
2 |
| Windows NT 4 |
Internet Explorer 6 |
3 |
| Windows NT 4 |
Internet Explorer 8 |
22 |
| Windows NT 4 |
Opera |
1 |
| Windows NT 4 |
NULL |
99 |
| Windows Server 2003 |
Firefox 3 |
17 |
| Windows Server 2003 |
Internet Explorer 6 |
18 |
| Windows Server 2003 |
Internet Explorer 7 |
51 |
| Windows Server 2003 |
SeaMonkey |
1 |
| Windows Server 2003 |
NULL |
87 |
| Windows Vista |
Chrome |
48 |
| Windows Vista |
Firefox 2 |
11 |
| Windows Vista |
Firefox 3 |
403 |
| Windows Vista |
Internet Explorer 7 |
87 |
| Windows Vista |
Internet Explorer 8 |
65 |
| Windows Vista |
Safari |
2 |
| Windows Vista |
NULL |
616 |
| Windows XP |
Chrome |
78 |
| Windows XP |
Firefox |
4 |
| Windows XP |
Firefox 2 |
357 |
| Windows XP |
Firefox 3 |
1817 |
| Windows XP |
Generic Gecko |
1 |
| Windows XP |
Internet Explorer 6 |
3123 |
| Windows XP |
Internet Explorer 7 |
780 |
| Windows XP |
Internet Explorer 8 |
140 |
| Windows XP |
K-Meleon |
1 |
| Windows XP |
Opera |
144 |
| Windows XP |
Thunderbird |
28 |
| Windows XP |
NULL |
6473 |
| NULL |
NULL |
10052 |
Per approfondimenti consultare i seguenti link:
Informatica mysql, query, subtotali
Recentemente realizzando il sito web di un cliente ho avuto la necessita di implementarvi un contatore di accessi con relative statistiche.
Esistono molti prodotti open source di ottimo livello ma la maggior parte necessitano php e mysql lato server per funzionare. Avendo solo a disposizione php dovevo trovare qualcosa di diverso. Dopo un pò di ricerche ho trovato l’ottimo funKounter. Questo non necessita di mysql in quanto archivia i dati di accesso su dei semplici file di testo.
Prosegui la lettura…
Informatica aruba, contatore, foss, funkounter, mysql, php, statistiche
Dopo diversi problemi con la replica di mysql ho realizzato uno script che una volta inserito nel crontab mi avverte per posta di un eventuale errore
check_mysql_replicate.sh
#!/bin/bash
check_str=`mysql -u user_mysql --password=password_mysql -e "SHOW SLAVE STATUSG" |grep Last_Error | cut -d ':' -f 2 `
check=`echo $check_str | tr -d ' '`
if [ $check ]; then
echo " ATTENZIONE !!!!!"
echo "POSSIBILE ERRORE NELLA REPLICA DI MYSQL"
echo
echo
echo ERRORE=$check_str
fi
Informatica foss, linux, mysql, replica, script
Gli ultimi commenti