MySQL e l’errore 87
Questa sera ho installato mySQL su un mini PC che utilizzerò per alcuni sviluppi. Stranamente mySQL 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 (GTYP + 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 partiuzionamento del disco.