mercoledì 5 novembre 2008

Installare e Configurare MySql server sotto windows

Introduzione
In questo tutorial affronteremo l'installazione e sopratutto la configurazione del DBMS MySql in ambiente windows, esaminando quali sono i passi da seguire e cercando di darne una motivazione. A conclusione di questo tutorial realizzeremo un semplice installer che mette insieme tutti i passi seguiti nella trattazione.


Prima di cominciare abbiamo bisogno, ovviamente, del materiale da configurare, quindi occorre scaricare l'ultima versione di MySql disponibile. Per la lettura di questo tutorial e per la sua comprensione è conveniente scegliere la versione senza installer, in quanto alla fine saremo in grado di realizzarlo da soli.
Una volta scaricato scompattiamo l'archivio in una qualsiasi directory e partiamo.

Per prima cosa è necessario sapere che MySql mantiene le informazioni necessarie alla sua configurazione all'interno del file my.ini che, seguendo le impostazioni di default, il dbms cerca nella cartella di installazione del sistema operativo(%windir% da shell). Di conseguenza posizioneremo il nostro file my.ini all'interno della directory %windir%(e.g C:\windows).
Questa è la struttura del file già modificata opportunamente per il settaggio del motore del DB da MyIsam a Innodb(necessario per connessioni remote al db ad esempio tramite jdbc):

my.ini:

[client]
port=3306

[mysqld]
port=3306
enable-named-pipe
socket=MySQL

skip-locking
set-variable = max_connections=64
set-variable = read_buffer_size=1M
set-variable = key_buffer=8M
set-variable = max_allowed_packet=1M
set-variable = table_cache=64
set-variable = sort_buffer=512K
set-variable = net_buffer_length=8K
set-variable = myisam_sort_buffer_size=4M
server-id = 1

basedir = "full path to mysql"/
datadir = "full path to mysql"/data/

skip-bdb

innodb_data_file_path = ibdata1:10M:autoextend
set-variable = innodb_buffer_pool_size=32M
set-variable = innodb_additional_mem_pool_size=4M

set-variable = innodb_log_file_size=8M
set-variable = innodb_log_buffer_size=8M

innodb_flush_log_at_trx_commit=1

[mysqldump]
quick
set-variable = max_allowed_packet=8M

[mysql]
no-auto-rehash

[isamchk]
set-variable = key_buffer=10M
set-variable = sort_buffer=10M
set-variable = read_buffer=2M
set-variable = write_buffer=2M

[myisamchk]
set-variable = key_buffer=10M
set-variable = sort_buffer=10M
set-variable = read_buffer=2M
set-variable = write_buffer=2M

[mysqlhotcopy]
interactive-timeout


dove le righe colorate in rosso si riferiscono al passaggio di motore.
Ci concentreremo sulle righe colorate in blu relative al settaggio delle cartelle contenenti i binari di MySql e la locazione dei db, necessarie per avviare correttamente il server. Ciò che è necessario fare, dunque, è impostare correttamente le directory delle due opzioni che dipendono da dove si è estratto l'archivio iniziale. Nel mio caso saranno:

basedir = c:/MySql/
datadir = c:/MySql/data/

per tutte le altre opzioni, che non saranno trattate in questo tutorial potete fare riferimento al sito ufficiale di MySql

Inserito questo file nella win path entriamo nella directory bin e richiamiamo da shell l'eseguibile mysqld-nt seguito dal comando --console, l'output dovrebbe essere simile a questo:



Tramite questo script forziamo la lettura del file e quindi il settaggio dei parametri per il nuovo motore e per il corretto avvio del server.

Essendo questo tutorial incentrato sulla configurazione manuale di mysql, utile per un eventuale deploy assieme ad una qualsiasi nostra applicazione, quello che vorremmo avere è un server che si avvi in automatico ad ogni accensione della macchina dove è installato. Per tanto installiamo mysql come servizio invocando, sempre da riga di comando, mysqld-nt --install
cio' che dovrebbe accadere è questo:


Il servizio è stato quindi installato correttamente. Per avviarlo ci sono due strade:
1)il reboot del sistema
2)accesso alla lista dei servizi e avvio manuale, se avete eseguito correttamente tutti i passi il servizio si avvierà con successo.

Per testare che tutto funzioni eseguiamo mysqladmin seguito dal comando
ping; se il servizio è attivo allora dovreste avere un output simile a questo:


quindi ora il vostro server mysql è installato e in ascolto sulla sua porta di default fissata appunto da noi in my.ini.

Per disinstallare il servizio possiamo utilizzare mysqld-nt --remove, ma è necessario prima arrestarlo con mysqladmin -u root -p shutdown (sono necessari i privilegi di super utente per arrestare il servizio). L'output è il seguente:

NB:
la password per il super utente di default è vuota, starà a voi una volta terminata l'esecuzione modificarla.

Per usare inizialmente il nostro DBMS possiamo usare l'interfaccia messa a nostra disposizione dall'eseguibile mysql contenuto sempre nella direcoty bin.



Ora siete in grado di installare e configurare il server mysql manualmente. L'obiettivo sarà quello di creare un installer che automatizzi questo processo e che ci potrà essere utile per un futuro deployment di una nostra applicazione che faccia uso di mysql come dbms.
Ne realizzeremo uno nel prossimo tutorial.

Aspetto i vostri commenti!!!

2 commenti:

Anonimo ha detto...

scusa Emilio, ma il file my.ini dove si trova? oppure lo dobbiamo creare noi? grazie

emilio ha detto...

ciao neofita, il file in questione lo devi creare con le opzioni postate sul tutorial, crea un nuovo file e salvalo con il nome my.ini .
Grazie a te per il tuo commento

Posta un commento