There is an IPv6 entry in the Windows host file that Apache can't use which is causing it not to recognize localhost.
Go to C:\Windows\system32\drivers\etc\Hosts
file and open it in your text editor (in Vista right click on the Notepad link and select to run as administrator which will eliminate an error when trying to save the Hosts file
Find this line:::1 localhost
Comment it out so it looks like this:# ::1 localhost
Make sure that you now have these 2 lines at the beginning of the uncommented section of your Hosts file:127.0.0.1 localhost
# ::1 localhost
Save the file and then try http://localhost
Kindly let us know if that fixes the localhost issue and if you still have issues with the MySQL not starting.