Hi,
Let me take a shot at explaining this in simple terms. Most of the Operating
System today is building support for IPV6. IPV4 has its own set of limitation
and hence the world is moving to IPV6. I am not going to explain differences
between two, but for the sake of this discussion assume that they are different.
A close look at PHP MySQL driver code indicates that mysql_connect() function
uses mysql_real_connect() to connect to MySQL. The API mysql_real_connect() is
an API which comes from MySQL dll (MySQL development team and is part of MySQL
database installation). So this means the support for IPV6 in PHP MySQL driver
is not possible unless there is a support for IPV6 in MySQL database. So the
limitation (or no support for IPV6 or whatever word may be used to describe
this situation) is coming from MySQL database limitation. So now it is clear
that this is not a PHP bug in the sense that nothing can be changed in PHP code
base to fix it.
Let's move on to operating system concern now. A typical host file
(irrespective of OS) has two columns which contains the IP address and host
name binding to it. In order to support both IPV4 and IPV6 (at least on
Windows) localhost is getting mapped to two IP addresses. There can be other
reasons for mapping same localhost to multiple IP address. What is important is
that, there is a case where we have multiple IP address pointing to same host
name. A close inspection of MySQL code reveals that the function
mysql_real_connect() actually tries to connect to only the first IP address
returned for the hostname and if this fails, no further attempt to connect
using other IP address associated with same host name is made. This can be
fixed and I believe a patch is already lying in some development branch of
MySQL and please follow MySQL release to know which version has this fix
integrated. I do not have any idea about that. But an important thing is that
this bug can surface on any OS where you have above condition satisfied for the
host file. Yes WINDOWS, Ubuntu, Solaris all will and may get impacted. So this
means that this is not a problem with Windows OS or for that reason any other
OS.
Hope this explain things.
Thanks,
Don.
-Original Message-
From: Gunawan Wibisono [mailto:landavi...@gmail.com]
Sent: Sunday, March 07, 2010 7:37 AM
To: php-wind...@lists.php.net; php-db@lists.php.net
Subject: Re: [PHP-WIN] Re: [PHP-DB] Cannot connect to MySQL
sry.. this kinda other person problem
thx for your support and I kinda found this problem on other place.. Is
posible.. the problem in the windows 7?
On Sun, Mar 7, 2010 at 12:12 AM, Venkat Raman Don
wrote:
> Seems like IPV6 functionality of Windows and MySQL driver is not gelling
> well.
>
> Please see http://bugs.php.net/bug.php?id=50172.
> This is also discussed in MySQL forum at
> http://forums.mysql.com/read.php?52,294772,294772#msg-294772.
>
> Thanks,
> Don.
>
>
> -Original Message-
> From: Lester Caine [mailto:les...@lsces.co.uk]
> Sent: Saturday, March 06, 2010 9:01 AM
> To: php-windows
> Subject: Re: [PHP-WIN] Re: [PHP-DB] Cannot connect to MySQL
>
> Gunawan Wibisono wrote:
> > Hello,
> >
> > First of all, I apologise if I do something wrong, because I'm new to
> this
> > weird system.
> >
> > For test purposes, I have installed Apache 2.2.14 with PHP 5.3.1 and
> MySQL
> > 5.1.44 on Windows 7 Home Premium. However, whenever I try accessing
> MySQL
> > via PHP, I get the following error:
> >
> > A connection attempt failed because the connected party did not properly
> > respond after a period of time, or established connection failed because
> > connected host has failed to respond.
> >
> > MySQL's command line client is still working fine. I think that PHP
> simply
> > does not see MySQL, though the settings in php.ini seem to be correct.
> > Earlier (before I upgraded to Windows 7 and PHP 5.3) it worked. I've
> tried
> > turning off the antivirus, because sometimes it may cause timeouts, but
> it
> > didn't help. Can someone please help me fix this?
>
> PHP does not come with any database enabled by default, so you will need to
> enable one. For MySQL just look in php.ini for the line
> ;extension=php_mysql.dll
> and remove the ';' at the front, and then restart Apache.
> The first page you should create is
>
> phpinfo();
> ?>
>
> Which will list all the modules that are active ;)
>
>
>
> --
> Lester Caine - G8HFL
> -
> Contact - http://lsces.co.uk/wiki/?page=contact
> L.S.Caine Electronic Services - http://lsces.co.uk
> EnquirySolve - http://enquirysolve.com/
> Model Engineers Digital Workshop - http://medw.co.uk//
> Firebird - http://www.firebirdsql.org/index.php
>
> --
> PHP Windows Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
> --
> PHP Windows Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
akan ada dimana mulut terkun