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


I installed LAMP on Ubuntu 12.04 LTS (Precise Pangolin) and then set root password on phpMyAdmin. I forgot the password and now I am unable to login. When I try to change password through terminal I get:

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

How can I fix this? I am unable to open LAMP, uninstall it or reinstall it.

11/3/2016 1:44:17 AM

Try this:

mysql -h -P 3306 -u root -p <database>

Also (to see if it's running):

telnet 3306 

Probably it is just a misconfiguration in the my.cnf file, in /etc/somewhere (depending on the Linux distribution).


I am seeing all these answers, but none offer the option to reset the password and no accepted answer. The actual question being he forgot his password, so he needs to reset, not see if it's running or not (installed or not) as most of these answers imply.

To reset the password

Follow these steps (can be helpful if you really forget your password and you can try it anytime, even if you're not in the situation at the moment):

  1. Stop mysql

    sudo /etc/init.d/mysql stop

    Or for other distribution versions:

    sudo /etc/init.d/mysqld stop
  2. Start MySQL in safe mode

    sudo mysqld_safe --skip-grant-tables &
  3. Log into MySQL using root

    mysql -uroot
  4. Select the MySQL database to use

    use mysql;
  5. Reset the password

    -- MySQL version < 5.7
    update user set password=PASSWORD("mynewpassword") where User='root';
    -- MySQL 5.7, mysql.user table "password" field -> "authentication_string"
    update user set authentication_string=password('mynewpassword') where user='root';
  6. Flush the privileges

    flush privileges;
  7. Restart the server

  8. Stop and start the server again

    Ubuntu and Debian:

    sudo /etc/init.d/mysql stop
    sudo /etc/init.d/mysql start

    On CentOS, Fedora, and RHEL:

    sudo /etc/init.d/mysqld stop
    sudo /etc/init.d/mysqld start
  9. Login with a new password

    mysql -u root -p
  10. Type the new password and enjoy your server again like nothing happened

This was taken from Reset a MySQL root password.


I tried the following steps:

  1. Log in as super user or use sudo
  2. Open /etc/mysql/my.cnf using gedit
  3. Find bind-address, and change its value to the database server host machine's IP address. For me, it was localhost or
  4. Save and close the file.
  5. Come back to terminal and execute sudo service mysql start

And it worked for me.


In my case it was that the disk was full and mysqld couldn't start anymore.

Try to restart mysql service.

> service mysql restart


> service mysql stop

> service mysql start

If it doesn't recognize stop command then it's definitely the disk space. You should make some space in the partition mysql is allocated or make the disk larger.

Check the disk space with

> df -h

I fixed this problem by executing the following command:

mysql.server start

And if you are on a mac and used brew to install mysql, simply use:

brew services start mysql