My issue (on Windows) occurred when Xampp was running, Windows Updates got installed and I hit the restart & install updates while xampp (mysql + apache ) were running.
On reboot apache on port 443,80 were working when started but mysql complained that the port was in use, I attempted to update the port to 3307 but this did not work and on reading the
event viewer logs
"Can't start server: Bind on TCP/IP port. Got error: 10013: An attempt was made to access a socket in a way forbidden by its access permissions."
The solution that worked for me is that I reset permission-related port issues under an admin cmd prompt
netsh winsock
reset netsh int ip reset
Then uninstalled the latest Windows Update
Then Performed a Reboot - on restart xampp-mysql was able to start normally under port 3306