View my profile on LinkedIn

Posts tagged ‘mysql’

Installare bugzilla su debian

Questo non è un software che si installa tutti i giorni e di cui hanno bisogno, ma nel caso serva…

Giovedì scorso ho installato la versione 3.2.2, dato che mi era stata espressamente richiesta, ma con queste istruzioni si può installare la versione che si desidera, sono tutte disponibili al download, e l’ho messo su Debian Lenny.

I passi che ho seguito sono questi.

Per prima cosa ovviamente ho installato Lenny, ho messo la 32 bit, su una macchina virtuale, e gli ho assegnato un giga di ram, per adesso ho visto che basta.

Ho fatto nn dist-upgrade, e ho installato ssh, io non ho messo nulla che non fosse il solo sistema di base, non avevo bisogno dell’interfaccia grafica e non l’ho messa, ho assegnato un ip fisso al server e l’ho pubblicato su ip pubblico, ho fatto i controlli di raggiungibilità da internet e qualche altra prova, poi un riavvio per accertasti che funzionasse tutto.

Ho installato mysql con:

apt-get install mysql-server-5.0 mysql-client-5.0

durante il setup ho inserito una password per l’utente root, che servirà dopo.

Ho installato un altro po’ di roba che dovrebbe servire in seguito

apt-get install apache2 libapache2-mod-perl2 libtemplate-perl libmime-perl libappconfig-perl libdbd-mysql-perl libtimedate-perl libgd-gd2-perl libgd-text-perl libxml-twig-perl perlmagick libemail-send-perl libemail-mime-modifier-perl libchart-perl libgd-graph-perl libhtml-scrubber-perl make unzip php5

Come ho detto sopra mi avevano chiesto la versione 3.2.2 di bugzilla, e siccome nei repository di Lenny era presente la 3.0.4 l’ho installato comunque

apt-get install bugzilla

che si installa il pacchetto e tutte le dipendenze, e poi mi sono scaricato ed installato la versione che volevo io, quindi mi sono trovato un sistema con due bugzilla installati, uno in versione sbagliata che non avrei usato ma che mi ha messo tutto il software e le configurazioni che mi servivano e uno nella versioni che mi serviva che è quello che faccio lavorare.

Apt-get fà un pò di domande durante il setup, segnatevi le risposte che serviranno e ricordare che l’user che accede al db mysql e’ bugzilla3.

Finito l’apt-get ho scaricato la versione 3.2.2 del bugzilla (potete scaricare la versione che volete cambiando il numero di release nell’url)

wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.2.2.tar.gz –output-document=/tmp/bugzilla-3.2.2.tar.gz
tar –directory /var/www -xzf /tmp/bugzilla-3.2.2.tar.gz
cd /var/www
ln -s bugzilla-3.2.2 bugzilla
cd /var/www/bugzilla
./checksetup.pl

il checksetup.pl controlla dipendenze dei componenti perl necessari, sembra tutto a posto ma ci sono dei componenti opzionali che possono essere installati, riporto un pezzetto dell’output:

…..

***********************************************************************
* MODULE NAME * ENABLES FEATURE(S) *
***********************************************************************
* PatchReader * Patch Viewer *
* perl-ldap * LDAP Authentication *
* Authen-SASL * SMTP Authentication *
* RadiusPerl * RADIUS Authentication *
* SOAP-Lite * XML-RPC Interface *
* Email-MIME-Attachment-Stripper * Inbound Email *
* Email-Reply * Inbound Email *
***********************************************************************
COMMANDS TO INSTALL:

PatchReader: /usr/bin/perl install-module.pl PatchReader
perl-ldap: /usr/bin/perl install-module.pl Net::LDAP
Authen-SASL: /usr/bin/perl install-module.pl Authen::SASL
RadiusPerl: /usr/bin/perl install-module.pl Authen::Radius
SOAP-Lite: /usr/bin/perl install-module.pl SOAP::Lite
Email-MIME-Attachment-Stripper: /usr/bin/perl install-module.pl Email::MIME::Attachment::Stripper
Email-Reply: /usr/bin/perl install-module.pl Email::Reply

To attempt an automatic install of every required and optional module
with one command, do:

/usr/bin/perl install-module.pl –all

se poi pensate che nel più c’è anche il meno potete anche fare

/usr/bin/perl install-module.pl –all

a voi la scelta, a me è servito solo il modulo Email::Replay per l’invio delle email di notifica e solo quello ho installato con

/usr/bin/perl install-module.pl Email::Reply

In ultimo ho modificato la configurazione per permettere al MIO bugzilla 3.2.2 di connettersi alle tabelle create dal setup del bugzilla installato da apt-get, ricordate che MiaPassword è la password dell’utente mysql “bugzilla3″ indicato durate l’apt-get, più qualche modifica per usare l’apache a modo.

sed -i -e “s/^\$db_name = ‘.*’;/\$db_name = ‘bugzilla3′;/” -e “s/^\$db_user = ‘.*’;/\$db_user = ‘bugzilla3′;/” -e “s/^\$db_pass = ‘.*’;/\$db_pass = ‘MiaPassword’;/” /var/www/bugzilla/localconfig

sed -i -e “s/^\$webservergroup = ‘.*’;/\$webservergroup = ‘www-data’;/” /var/www/bugzilla/localconfig

sed -i -e ‘/<\/VirtualHost>/i\
\
Options +ExecCGI\
AllowOverride Limit\
DirectoryIndex index.cgi\
AddHandler cgi-script .cgi\
<\/Directory>’ /etc/apache2/sites-available/default

un riavvio della macchina per sicurezza ed il vostro bugzilla è pronto all’url:

http://$IP_DEL_SERVER/bugzilla

Il db Mysql del blog si è corrotto (e ho dimenticato la password di root)

Dopo un crash dovuto alla morte del gruppo di continuità rimasto a secco di corrente, la tabella del database di wordpress che ospita le statistiche si e’ corrotta…

Nulla di grave, la tabella appartiene al plugin wp-slimstat, ed è esterna alla struttura delle tabelle di WordPress, quindi il blog non ne ha minimamente risentito, e io stesso mi sono accorto del problema quando sono andato a consultare le statistiche ho ricevuto indietro un errore alla riga del programma php che scorre i record.

Il massimo danno configurabile era la perdita dello storico delle statistiche, questo solo se la tabella in causa non era recuperabile, zapparla via non era un problema visto che il programma l’avrebbe ricreata automagicamente vuota.

in effetti il danno non era grosso, solo che non mi ricordavo la password di root di Mysql :-P

La procedura di recovery della password è stata facile, ovvio prima un grasso backup della macchina virtuale:

Entro come root nel serverino e fermo mysql:

/etc/init.d/mysql stop

Una volta fermato MySql lo riavvio in modo “safe”:

mysqld_safe –skip-grant-tables &

apro una shell di MySql

mysql -h localhost

e sono dentro come root, per modificare la password:

use mysql;
UPDATE user SET password=password(“Mia_Nuova_Password”) WHERE user=”root”;

Adesso posso riavviare mysql

/etc/init.d/mysql restart

per riparare la tabella invece, faccio lo shutdown di MySql:

mysqladmin -u root -p shutdown

mi sposto dove wordpress tiene i file del database

cd /var/lib/mysql/wordpress

e faccio un check

myisamchk *.MYI

ecco la tabella “marcia”

Checking MyISAM file: wp_slim_stats.MYI
Data records: 1683273 Deleted blocks: 0
myisamchk: warning: Table is marked as crashed
myisamchk: warning: 1 client is using or hasn’t closed the table properly
- check file-size
myisamchk: error: Size of datafile is: 163352212 Should be: 163352256
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
myisamchk: error: Found key at page 17273856 that points to record outside datafile
- check record links
myisamchk: error: Record-count is not ok; is 1683272 Should be: 1683273
myisamchk: warning: Found 1683272 parts Should be: 1683273 parts
MyISAM-table ‘wp_slim_stats.MYI’ is corrupted
Fix it using switch “-r” or “-o”

Quindi provo a ripararla:

myisamchk -r -q wp_slim_stats
- check record delete-chain
- recovering (with sort) MyISAM-table ‘wp_slim_stats’
Data records: 1683273
- Fixing index 1
Data records: 1683272

finito, alla fine dei salmi c’era un unico record rimasto “nel limbo”.

Riavvio mysql e mi ritrovo di nuovo le mie 1.6 milioni di righe di statistiche mancanti ovviamente delle visite avvenute dal crash (8,45 circa) all’ora della riparazione.

:-)

per la cronaca SlimStat, ottimo prodotto, lo trovate QUI

hitstatus