Stavo spulciando l’altro mio blog, per spostare qui gli articoli più da smanettoni, e sono incappato in questo vecchio bug di MySQL, che fa riferimento ad un criptico errore 87.

Magari ad oggi hanno anche risolto, ma nel dubbio, riporto qui l’articolo completo.

Installando a mano mySQL su un PC, stranamente il servizio non partiva.
Cercando nei log ho trovato questo:

2021-03-13T20:31:39.193889Z 0 [ERROR] InnoDB: Operating system error number 87 in a file operation.
2021-03-13T20:31:39.198392Z 0 [Note] InnoDB: Some operating system error numbers are described at http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html
2021-03-13T20:31:39.207794Z 0 [ERROR] InnoDB: File .\ib_logfile0: ‘aio read’ returned OS error 187. Cannot continue operation
2021-03-13T20:31:39.226296Z 0 [ERROR] InnoDB: Cannot continue operation.

Sinceramente non mi era mai capitato in passato. La prima cosa a cui ho pensato è stata che la CPU non fosse supportata (si tratta di un Intel Celeron J4125 Quad Core). Ho escluso subito Windows 10, dato che ho altri ambienti di sviluppo sul medesimo OS. Ma non escludo che possa trattarsi di un mix (GPT + Win10?)

Cercando in giro, ho trovato la soluzione: su alcuni tipi di drive (quello del mini PC che sto usando è saldato sulla scheda madre) e/o in base al partizionamento del disco stesso (c’è chi parla di bug mySQL su partizioni GPT) pare sia necessario aggiungere una direttiva al file my.cnf (o my.ini) di mySQL.

La linea in questione è

innodb_flush_method=normal

A questo punto mySQL dovrebbe avviarsi senza problemi.

Bug anomalo, che tra l’altro sembra essere rimasto per svariate versioni di mySQL.

Per fortuna con la direttiva sopra indicata, si può ovviare al problema, senza dover reinstallare il sistema o andare a trafficare sul partizionamento del disco.