Bug #49866 Error in defining socket file
Submitted: 22 Dec 2009 3:07 Modified: 22 Dec 2009 8:45
Reporter: Ken Jones Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.1.41 OS:Solaris
Assigned to: CPU Architecture:Any

[22 Dec 2009 3:07] Ken Jones
Description:
in using ./configure to build from source, I accidentally added the following line:
--with-unix-socket-path="/usr/local/mysql/var/mysql.sock "
Note the space after the word sock and before the quote mark.

This was then compiled into the application as the default. 
any attempt to access , ie mysql -u root -p
fails witht he following:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/var/mysql.sock ' (2)
however if I specify on the command line the name of the socket file, it works fine.

How to repeat:
include the following with ./configure
--with-unix-socket-path="/usr/local/mysql/var/mysql.sock "
[22 Dec 2009 4:39] Valeriy Kravchuk
Thank you for the problem report. Had you specified the name of the socket file quoted and with space at the end when it worked?
[22 Dec 2009 5:52] Ken Jones
This was an issue that arose during the building of this release. It is a typeo and previously was not built with the additional space.

As I put it in, a non-critical error, I don't know if it is worth it or not to alter the configuration script to fix it as it was an error on my part having the space. It was a pane to find the cause however of it not working ...

I do have in my my.cnf file the following which didn't do anything ...and yes it is the correct my.cnf file as other changes in there were reported in the log file as depreciated :

[client]
port            = 3306
socket          ="/usr/local/mysql/var/mysql.sock"

#
# The MySQL server
#
[mysqld]

# generic configuration options
port            = 3306
socket          ="/usr/local/mysql/var/mysql.sock"
[22 Dec 2009 8:45] Sveta Smirnova
Thank you for the feedback.

This is not a bug: purpose of quotes in SHELL is you can use any string in it. so if you specified space, string contain space. Socket name with space works:

$./bin/mysql -uroot -S /tmp/mysql_ssmirnova.sock
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql_ssmirnova.sock' (2)

$./bin/mysql -uroot -S /tmp/mysql_ssmirnova.sock\  
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.43-debug Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \q
Bye