Microsoft WebMatrix: come far funzionare (male) MySQL

Microsoft WebMatrix è un tool integrato di sviluppo web di Microsoft. Devo dire che quando l’ho visto sul sito mi sono incuriosito e ho pensato di provarlo: in pratica installa IIS e un altra quintalata di applicazioni server che permettono di sviluppare (con un editor, Expression Web, simile a VisualStudio) applicazioni web. La cosa interessante è che il tool fa da solo donwload e installazione dei file necessari a queste operazioni: in pratica è come avere WAMP (Windows, Apache, MySQL, PHP) preinstallato.

Ma ovviamente poteva Microsoft far le cose bene al primo colpo? Ovviamente no.

Installato e tutto dico: ok, proviamo ad installarci WordPress.

Proviamo, perché l’installazione si interrompe tentando di accedere a MySQL. Un rapido controllo in services.msc rivela che il servizio non si avvia correttamente con errore 1067. Son diventato scemo su Google finché non ho trovato questo post http://stackoverflow.com/questions/17464507/mysql-unable-to-start-service-in-my-localhost che spiega come controllare i file di log di MySQL. La soluzione, più o meno, sta lì. Quando il servizio si avvia cerca i file di log di InnoDB e non li trova.

Praticamente quei geni del male di Microsoft si sono dimenticati di fare una piccola correzione nel tool che genera i file di configurazione (MySQLInstanceConfig.exe).

Nel file my.ini, dove viene memorizzata la configurazione di MySQL, si scoprono due cosette:

#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"
#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"

E fin qua niente di strano, c’è da fare attenzione alla differenza tra Program Files e ProgramData, che è una cosa furba da parte di Microsoft, se solo fosse documentata; ed è proprio a quella differenza che va la colpa di tutto, infatti qualche riga più sotto nello stesso file:

#*** INNODB Specific options ***
innodb_data_home_dir="C:/Program Files/MySQL/MySQL Server 5.1/data/"

Si trova una stringa che punta in Program Files, dove non c’è assolutamente nulla. Per correggere basta modificare la riga in:

#*** INNODB Specific options ***
innodb_data_home_dir="C:/ProgramData/MySQL/MySQL Server 5.1/data/"

Grazie a Microsoft e Oracle per avermi fatto sprecare due ore di vita.