Error 2002 (HY000)¶
If you’re seeing the error below or something like it when trying to connect to MemSQL it may be due to a quirk in the MySQL client.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
When the MySQL client connects to localhost, it tries to use a socket file by default. The socket file used is specified in /etc/mysql/my.cnf when the MySQL client is installed on the system. This is a MySQL socket file, which MemSQL does not use by default. Therefore, connecting with localhost goes to MySQL and not MemSQL.
There are a number of solutions to this problem.
Specify “127.0.0.1” as the host instead of localhost, i.e. mysql -h 127.0.0.1 -u root instead of mysql -h localhost -u root. Note that if you omit the host (mysql -u root) the MySQL client will implicitly use localhost.
In ‘/var/mysqld/mysqld.sock’ you should see this near the top of the file:
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock
Change socket to the location of your MemSQL socket file (“/tmp/memsql.sock” is the default location unless it has been changed in memsql.cnf).