Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

When I ping localhost the address resolves to the ipv6 loopback of ::1

My MySQL and Apache installations expects the ipv4 address of 127.0.0.1

How can I configure my WindowsXP to resolve localhost to 127.0.0.1?

My C:\WINDOWS\system32\drivers\etc\hosts file:

127.0.0.1 localhost
127.0.0.1 trunk
127.0.0.1 focus
127.0.0.1 demo

I have also have the following set in the Windows registry:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters]
"DisabledComponents"=dword:00000255

Anything else I can try?

share|improve this question

migrated from serverfault.com Jan 12 '12 at 13:13

This question came from our site for professional system and network administrators.

2  
ping -4 localhost –  user Jan 12 '12 at 12:27
    
Who would upvote such a pointless comment. When you ping localhost and don't specify a protocol, it appears to be defaulting to ipv6. When apache and mysql lookup localhost, they will be specifying the protocol and so will get an ipv4 address if that is what is requested. Perhaps tell us a bit more about the problem you are seeing, as a different approach might be needed. –  Paul Jan 12 '12 at 13:21
    
This is similar to the bug in Visual Studio's built-in Cassini web-server: it refuses to listen on ::1. As a result: it is, by default, unusable. Hopefully MySql is capable of binding to IPv6. –  Ian Boyd Nov 19 '12 at 12:48

2 Answers 2

up vote 1 down vote accepted

It depends on the application that you are using i.e. your application is asking for ipv6 address.

eg. telnet on linux tries to connect using ipv6 address before it tries, unless of course you specify protocol explicitly

default

x@x:~$ telnet localhost
Trying ::1...
Trying 127.0.0.1...

v4 specified

x@x:~$ telnet -4  localhost
Trying 127.0.0.1...

For your problem since you are not binding for v6 addresses (for apache and mysql services). In mysql and apache config you can explicitly specify "127.0.0.1" in places where localhost is specified. This should solve your problem.

share|improve this answer
    
I changed my main server name in the apache config file to 127.0.0.1 as you suggested and created a virtual host with servername of localhost and now I get both 127.0.0.1 and localhost to work. MySQL still not happy, but it may be an unrelated issue... –  JannieT Jan 12 '12 at 14:20
    
do you have problem accessing mysql directly or through apache (eg php or cgi-bin) –  daya Jan 12 '12 at 14:28
    
I can access MySQL via php, but not directly, see my new question:superuser.com/questions/377699/… –  JannieT Jan 12 '12 at 16:54

If you don't want to use IPv6 disable it on your connection and make sure you have IPv4 enabled.

Asuming you have a standard wired link you find this in the properties window of "local area connection". You have multiple entries there. You should see "Internet Protocol Version 6 (TCP/IPv6)" and "Internet Protocol Version 4 (TCP/IPv4)". Uncheck v6 and check v4.

Although I don't exactly understand your problem.

share|improve this answer
    
You should rather uninstall IPv6 altogether. –  kinokijuf Jan 12 '12 at 13:43
2  
No, uninstalling IPv6 is not correct. Better solution is to change apache and mysql config to listen on IPv6 addresses as well –  daya Jan 12 '12 at 13:52
    
@daya Exactly. That's why I wrote the last sentence –  Tom Jan 12 '12 at 14:05

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.