0

I am running MySQL 5.0.75-0ubuntu10.5 on Ubuntu 9.04 Jaunty. When I try to login as a root to MySQL

# mysql -u root -h localhost -padmin

I get following error

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)

But if I try using phpmyadmin http://localhost/phpmyadmin I can login using same credentials.

There are 3 entries for user "root" in mysql.user table with 3 different hosts

  • localhost
  • 127.0.0.1
  • indrik (hostname)

Encrypted Password for all these 3 entries is identical. I tried all 3 hostnames with -h argument, still no luck.

Any pointers?

1 Answer 1

4

Try connecting to localhost using TCP instead with the following additional command line argument:

--protocol=TCP 

You can also make sure you have the correct socket file my checking /etc/my.cnf :

[mysqld] datadir=/usr/local/mysql/data socket=/var/lib/mysql/mysql.sock 

If that states a different socket than the one in your error you can specify it on the command line with --socket=path, i.e. --socket=/var/lib/mysql/mysql.sock.

2
  • 1
    I found out that in /etc/mysql/my.cnf the location of mysql socket was defined as /tmp/mysql.sock but in /etc/mysql/debian.cnf it was /var/run/mysql/mysql.sock. So by providing --socket=/var/run/mysql/mysql.sock as an argument I can login to mysql as a root user. Commented Aug 18, 2010 at 13:40
  • 1
    @greenmang0: You should be able to fix that in the my.cnf under a client configuration header so you don't always have to specify the socket file. Commented Aug 18, 2010 at 13:51

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.