Edit report at http://bugs.php.net/bug.php?id=50829&edit=1
ID: 50829
Comment by: hansfn at gmail dot com
Reported by: giovanni at giacobbi dot net
Summary: php.ini directive pdo_mysql.default_socket is
ignored
Status: Closed
Type: Bug
Package: PDO related
Operating System: Linux
PHP Version: 5.3.2RC1
Block user comment: N
Private report: N
New Comment:
I think this is actually fixed. The problem is subtle. Quote from
http://www.php.net/manual/en/ref.pdo-mysql.connection.php:
--
When the host name is set to "localhost", then the connection to the
server is made thru a domain socket. If PDO_MYSQL is compiled against
libmysql then the location of the socket file is at libmysql's compiled
in location. If PDO_MYSQL is compiled against mysqlnd a default socket
can be set thru the pdo_mysql.default_socket setting.
--
In other words, pdo_mysql.default_socket is ignored when PDO_MYSQL is
compiled against libmysql.
I tested (on PHP 5.3.4, CentOS) with the code to reproduce the problem,
and got the correct/expect result. But I still got the "Can't connect to
local MySQL server through socket" error, because it turned out that
PDO_MYSQL was compiled against libmysql - "php -i" tells me
"--with-pdo-mysql=shared,/usr/lib/mysql/mysql_config". My problem was
that /etc/my.cnf wasn't in sync with /usr/lib/mysql/mysql_config ...
Previous Comments:
------------------------------------------------------------------------
[2010-10-13 17:19:56] mbiechl at jahnsandfriends dot de
Confirming that bug still exists in PHP 5.3.3 cli
------------------------------------------------------------------------
[2010-09-22 14:41:36] gnoodl+php at gmail dot com
So we're at v5.3.3 and this bug is still around :(
Status should be "Open"
------------------------------------------------------------------------
[2010-07-23 20:21:24] joelataylor at gmail dot com
I'm having this exact issue on 5.3.2 - installed via Zend Server. Having
been
hitting my head against a brick wall. I obviously can create a symbolic
link, or
use unix_socket - to point to the correct location - but would prefer
localhost to
work as expected.
------------------------------------------------------------------------
[2010-04-23 01:57:46] gnoodl at gmail dot com
In which stable version does this fix appear.
I've just upgraded to PHP 5.3.2 and whilst pdo_mysql.default_socket is
returned
correctly via ini_get(), attempting to make a connection results in the
following
exception
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through
socket
'/tmp/mysql.sock'
FYI, my socket file resides at /var/lib/mysql/mysql.sock
------------------------------------------------------------------------
[2010-03-24 17:49:55] paul at boxuk dot com
this, or a problem relating to this fix appears to be seg-faulting the
pdo_mysql
module on startup in ZTS mode
bug #51216 is related
commenting out REGISTER_INI_ENTRIES() in ext/pdo_mysql/pdo_mysql.c:68
php
startup prevents the seg-fault
configure line
--------------
./configure --enable-maintainer-zts --with-mysql --with-mysqli=mysqlnd
--enable-
pdo --with-pdo-mysql
gdb output
----------
gdb sapi/cli/php
GNU gdb Fedora (6.8-37.el5)
This GDB was configured as "i386-redhat-linux-gnu"...
(gdb) run
Starting program: /php-5.3.2/sapi/cli/php
[Thread debugging using libthread_db enabled]
[New Thread 0xb7f776c0 (LWP 491)]
[New Thread 0xb7d0db90 (LWP 494)]
[Thread 0xb7d0db90 (LWP 494) exited]
Program received signal SIGSEGV, Segmentation fault.
0x08347ff5 in zend_startup_module_ex (module=0x98d2720,
tsrm_ls=0x98b7050)
at /opt/BoxUK/install/php-5.3.2/Zend/zend_API.c:1618
1618 EG(current_module) = NULL;
module->name at this point is "pdo_mysql"
------------------------------------------------------------------------
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=50829
--
Edit this bug report at http://bugs.php.net/bug.php?id=50829&edit=1