Edit report at http://bugs.php.net/bug.php?id=45468&edit=1

 ID:                 45468
 Comment by:         me dot deepa dot selvam at hotmail dot com
 Reported by:        michael dot kofler at gmx dot com
 Summary:            Using mysqlnd defaults to using unix socket instead
                     of localhost:port
 Status:             Closed
 Type:               Bug
 Package:            MySQL related
 Operating System:   * (not win32)
 PHP Version:        5.3CVS, 6CVS (2009-04-25)
 Assigned To:        johannes
 Block user comment: N
 Private report:     N

 New Comment:

PHP Warning:  mysql_connect(): [2002] A connection attempt failed
because the connected party did not  (trying to connect via
tcp://localhost:3306) in C:\inetpub\wwwroot\test.php on line 3



I got this error on running my php file:test.php



<?php

echo "Got it............test.php";

$con=mysql_connect("localhost","root","p...@onicz");

if(!$con)

        die('Could not connect: '.mysql_error());

echo "Connection Success";

?>



I am working on windows 7 + IIS 7 + php 5.3.3 + MySQL 5.1.53



Someone please help me...


Previous Comments:
------------------------------------------------------------------------
[2010-05-06 12:33:13] wolfgang_weber at gmx dot at

Sorry for double posting, but I'd like to add a quote:



"The default location for the Unix socket file that the server uses for
communication with local clients is /tmp/mysql.sock. (For some
distribution formats, the directory might be different, such as
/var/lib/mysql for RPMs.)"



From:
http://dev.mysql.com/doc/refman/5.1/en/problems-with-mysql-sock.html



Regards

Wolfgang

------------------------------------------------------------------------
[2010-05-06 12:25:11] wolfgang_weber at gmx dot at

I don't know why this ticket has been closed as I am still affected from
this bug.



PHP: 5.3.2 with mysqlnd and php-fpm patch from svn

MySQL: 5.1.46

OS: Centos 5.4 x86_64



Configure options:



--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-mysql-sock=/var/lib/mysql \



Tried to add a zone in ZoneAdmin, and this is a part from my error log:



[06-May-2010 12:08:39] PHP Warning:  mysql_connect(): [2002] No such
file or directory (trying to connect via unix:///tmp/mysql.sock) in
/var/www/tools/zoneadmin/includes/config.php on line 28



So why do you think that this is not a bug anymore?



Kind regards

Wolfgang Weber

------------------------------------------------------------------------
[2009-08-27 10:35:27] and...@php.net

Closing this, as not a bug anymore

------------------------------------------------------------------------
[2009-08-27 10:26:20] and...@php.net

Jani,

I think you are wrong :

and...@winnie:/work/vanilla/php/php-src/branches/PHP_5_3$ ./php -r
'$c=mysql_connect("localhost:3307");var_dump($c,
$res=mysql_query("select 42", $c), mysql_fetch_assoc($res));'



Warning: mysql_connect(): Can't connect to local MySQL server through
socket '/var/run/mysqld/mysqld.sock' (2) in Command line code on line 1



Warning: mysql_query() expects parameter 2 to be resource, boolean given
in Command line code on line 1



Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null
given in Command line code on line 1

bool(false)

NULL

NULL

---------------------------

My MySQL runs on 3307 and the socket it uses is /tmp/mysql.sock. I have
a /etc/my.cnf, that specifies /var/run/mysqld/mysqld.sock, and the
client tries to use it. So you see, if you specify localhost this means
- use unix socket, no matter if there is a port or not. mysqlnd does the
same. Same is valid if you try mysql --host localhost --port=3307 . I
suppose in your case you had mysql running with socket which you was
where expected.



------------------------------------------------------------------------
[2009-04-26 15:27:11] j...@php.net

This is clearly a bug:



# sapi/cli/php -n -r 'mysql_connect("localhost:3306");'



Output with --with-mysql=mysqlnd:



Warning: mysql_connect(): [2002] No such file or directory (trying to 

connect via unix:///tmp/mysql.sock) in Command line code on line 1



# sapi/cli/php -n -r 'mysql_connect("localhost:3306");'



No output (error) --with-mysql (without mysqlnd) -> connection works.



The problem is with code in ext/mysqlnd/mysqlnd.c:537-543 which forces 

using the socket in this case.



Note: Same happens with mysqli. This bug also makes all mysql(i) tests 


fail unless one uses some environment variables while running them.



------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=45468


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=45468&edit=1

Reply via email to