[ Tips ] Come provare MySQL 5.0.15
mantenendo la versione corrente di MySQL 4.x.
Lo scopo di questo "TIP" e' di suggerire un modo semplice per poter provare la
nuova release 5.0.15 di MySQL senza disinstallare il server MySQL 4.0 o 4.1 da
servizio di windows e avere comunque piena funzionalita' di prove sulle nuove
prestazioni di mySQL 5.0.15. Ovvero:
come scambiare la versione attiva di MySQL con due soli click.
MySQL 5.0.15 stable release e' stata rilasciata. La vorrei provare, ma non vorrei
rimuovere la precedente, o meglio non vorrei danneggiare in alcum modo l'attuale
versione e configurazione installata. Si puo' fare? Certo che si. Vediamo come:
Scarichiamo innanzi tutto la versione di MySQL 5.0.15 senza installer, quella solo
da scompattare dove ci parra' opportuno.... mysql-noinstall-5.0.15-win32.zip
la troviamo nel sito di Mysql al solito URL http://dev.mysql.com/downloads/mysql/5.0.html
al riferimento della sezione di windows. (dim. 35.2 M).
Questa distribuzione e' zippata in una cartella di nome: mysql-5.0.15_win32.
E' fortemente raccomandato, almeno a partire dalla versione 4.1.x, di installare
il server nel path previsto dal default dell'installazione e questo per varie ragioni.
La prima e' che con pochi colpi di click del mouse potremo facilmente aggiornare
i vari componenti, un'altra ragione e' che lo stesso path e' utilizzato dai tools
"mysql administrator", "mysql query browser", "mysql system tray monitor" avendo
cosi' tutto in ordine e facilmente upgradabile. Il path in questione e':
C:\programmi\mysql\
Andiamo quindi a creare una cartella \mysql in \programmi\ nel caso questa
ancora non esistesse e scompattiamo qui il file mysql-noinstall-5.0.15-win32.zip
scaricato dal sito di MySQL.
Rinominiamo la cartella mysql-5.0.15_win32 che si sara' creata in modo da
ottenere il path che avremmo ottenuto con la versione con installer in modo tale
che futuri aggiornamenti siano facilmente eseguiti. Rinominiamo la cartella in:
C:\programmi\mysql\mysql server 5.0
Se la versione corrente di Mysql attualmente utilizzata fosse la 4.1.x e se abbiamo
anche scaricato i tools disponibili dovremmo verificare la seguente situazione:
C:\Programmi\mysql\MYSQL Administrator 1.1
C:\Programmi\mysql\MYSQL Query Browser 1.1
C:\Programmi\mysql\mysql server 4.1
C:\Programmi\mysql\mysql server 5.0
Prepariamo ora due oggetti per attivare e fermare il server MySQL 5.0:
Con esplora risorse di windows portiamoci in:
C:\programmi\mysql\mysql server 5.0\bin
Cerchiamo il file mysqld-nt.exe e cliccandoci su con il tasto dx del mouse
creiamo un collegamento al file. Prendiamo questo collegamento e spostiamolo sul
desktop. Rinominiamo il collegamento come "Start MySQL 5".
Apriamo ora NOTEPAD (o l'editor che vi pare) ed andiamo a creare il file batch
che servira' a fermare mysql 5.0. Scriviamo nell'editor le righe in neretto:
C:
cd programmi\mysql\mysql server 5.0\bin
mysqladmin -uroot -ppassword shutdown
Salviamo il file come "Stop MySQL 5.bat".
Perche' tre righe invece di una ? Per il semplice fatto che cosi' funziona "sempre".
Misteri del DOS. Notate come sono scritti "-uroot" e "-ppassword" ... senza spazi.
Si suppone che ognuno usera' la propria password al posto di password,
password che verra' settata in seguito nella tabella mysql.user.
Posizioniamo l'icona del file nel desktop, proprio vicino allo "Start MySQL 5".
Mentre ci siamo facciamo anche un collegamento sul desktop ad una finestra DOS
dedicata alla shell di mysql 5.0 in modo da posizionarci correttamente per i comandi:
Negli "accessori" di windows troviamo l'icona nera del prompt dei comandi. Facciamo
il solito collegamento e lo portiamo sul desktop. Apriamo le proprieta' e nella
finestra da: scriviamoci il nostro path: "C:\Programmi\mysql\mysql server 5.0\bin\"
virgolette comprese. Rinominiamo il collegamento con un nome d'affezione tipo
"Prompt Shell MySQL 5".
Prendiamo ora il/i database con le tabelle che ci servono dall'installazione attuale
di mysql. Se le tabelle sono del tipo MyISAM possiamo bellamente farne una copia
e mettere il tutto nella cartella \DATA di MySQL 5.0. Sempre ricordando che:
cartella = database ed i file contenuti di nome_file.MYI/MYD/frm sono le tabelle.
Se le tabelle sono di tipo InnoDB sara' obbligo effettuarne il backup su MySQL 4.x
a cui si fara' seguire poi il restore su Mysql 5.0
Non spostiamo i file della cartella "data\mysql\" perche' il formato non e' compa-
tibile tra le versioni 4.x e 5.0. Esiste un file (piu' di un file) di aggiornamento
che troveremo nella cartella "\scripts" di mysql 5.0 ed esiste pure una nuova strut-
tura per la gestione delle "views", "stored procedure", "triggers" ecc.... tutte
cose che esulano pero' dallo scopo di questo "TIP" . Lasciamo quindi in pace il contenuto
del database mysql di mysql 4.x. Metteremo i nostri utenti a manina in mysql 5.0
Cosa abbiamo fatto sino ad ora? Abbiamo posizionato il server MySQL 5.0.15 nella sua
cartella, Abbiamo creato le tre icone di start, stop e Prompt SHELL sul desktop,
Abbiamo trasferito delle tabelle MyISAM nella cartella "\data" di mysql 5.0....
che ci manca per essere operativi??? ... ci manca la password.
Andiamo quindi a fermare il server Mysql 4.x. Se abbiamo mysql 4.0 andremo a mettere
il semaforino sul rosso, se abbiamo mysql 4.1 useremo invece il "System Tray Monitor".
Lanciamo ora il server 5.0 con il click sull'icona di "Start MySQL 5". Vedremo un
breve flash di una finestra DOS.
Lanciamo il prompt della shell con il click sull'icona "Prompt Shell MySQL 5"
Dovremmo avere quindi l'apertura di una finestra DOS con il path al \bin di mysql 5.0
correttamente posizionato. Eseguiamo la connessione al server mysqld-nt:
Ovviamente saremo stati cosi' accorti da assegnare la stessa password utilizzata percodice:C:\Programmi\mysql\mysql server 5.0\bin>mysql -u root La risposta sara' simile alla seguente: Microsoft Windows XP [Versione 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Programmi\mysql\mysql server 5.0\bin>mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 to server version: 5.0.15-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. settiamo ora la nuova password IMPORTANTE - Se utilizzate PHP 4.x dovrete usare la funzione OLD_PASSWORD('new_password') invece di PASSWORD() funzione buona per php 5.x mysql> UPDATE mysql.user SET Password = PASSWORD('new_password') -> where user = 'root'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 eseguiamo il FLUSH per attivare la nuova configurazione mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql>
l'utente "root" di mysql 4.x in modo che non dovremo modificare assolutamente nulla
nella configurazione di phpMyAmin e negli altri script php che desideriamo provare.
Possiamo quindi chiudere con "quit" la nostra shell e lasciare la finestra DOS.
Lanciamo ora phpmyadmin e se tutto e' corretto dovremmo trovarci collegati a mysql 5.0.15.
Andiamo ora a configurare gli altri utenti nella tabella USER che possono servire
ai nostri script sempre tenendo conto della funzione PASSWORD() o OLD_PASSWORD()
che sara' necessaria. Eseguiamo pure il RESTORE delle tabelle InnoDB ed il FLUSH per i nuovi user.
Per fermare il server MySQL 5.0 useremo "Stop MySQL 5.bat". Potremo rilanciare il
servizio del server MySQL precedente con il System Tray monitor o con il semaforino.
Quindi:
Click -> stop mysql 4 da tray monitor / semaforo
Click -> start mysql 5 da icona
Click -> stop mysql 5 da icona
Click -> start mysql 4 da tray monitor / semaforo
Con due clik si passa da una versione all'altra di MySQL. Il file My.ini non l'ho
considerato proprio e per due ragioni. La prima e' che inizialmente vorrei vedere
il comportamento di default di tutte le variabili (in assenza di configurazione su
my.ini viene utilizzata la configurazione di default in release) la seconda ragione
e' che in questa fase di prove non serve al nostro scopo. Quello che non c'e non si
guasta e non fa casino.
Potete cosi' iniziare a provare le views, e le stored procedures.... sicuramente
le due novita' piu' consistenti (due di sei). Si possono provare sia da script che
con qualunque tools di gestione. L'unico limite lo avra' mysql administrator che
non potra' ovviamente gestire MySQL 5.0 come "servizio"... perche' non esistente.
Abbiamo quindi realizzato una piattaforma di prova per mysql 5.0 che potra' essere
utilizzata sia da script, sia dai tools di gestione di mysql, sia da SHELL. Il giorno
che si decidera' di passare a mysql 5 abbandonando la versione precedente, bastera'
"invertire" lo scenario... cioe' rimuovere il servizio di mysql 4.x, installare il
servizio mysql 5.0 e modificare le icone di "start, stop" da mysql 5 al mysql
precedente, per avere la possibilita' di eseguire dei "regression test" per la
verifica di compatibilita'.
Con due Click provi la compatibilita' dei tuoi script con MySQL 4.x e con MySQL 5.0
Importante e voluto: Le modifiche alle tabelle saranno indipendenti, cioe'
le modifiche di prova effettuate su mysql 5.0 non hanno effetto sulle tabelle
utilizzate da mysql 4.x e viceversa. E' scontato, ma e' doveroso rimarcarlo.
ciauz