I enjoy Windows Subsystem for Linux (WSL) on Windows 10 and use it constantly. It does not patch itself so from time to time I update it using apt-get. The latest update upgraded MySQL to version 5.7.22 but unfortunately the upgrade failed. The issue is that dpkg cannot configure it. I saw messages like:
invoke-rc.d: could not determine current runlevel
2002: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock
After multiple efforts uninstalling and reinstalling I narrowed the problem down to a dmesg error:
dmesg: read kernel buffer failed: Function not implemented
It is true, dmesg does not work on WSL. However there is a workaround here that says if you write something to /dev/kmsg then at least calling dmesg does not return an error. So I did:
sudo echo foo > /dev/kmsg
Removed and reinstalled MySQL one more time and it worked:
Apparently partial dmesg support in WSL is on the way, previewed in Build 17655.
Note: be cautious about fully uninstalling MySQL if you have data you want to preserve. Export/backup the databases first.