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

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


I once had this problem and solved it by installing mysql-server, so make sure that you have installed the mysql-server, not the mysql-client or something else.

That error means the file /var/run/mysqld/mysqld.sock doesn't exists, if you didn't install mysql-server, then the file would not exist. So in that case, install it with

sudo apt-get install mysql-server

But if the mysql-server is already installed and is running, then you need to check the config files.

The config files are:

/etc/my.cnf/etc/mysql/my.cnf/var/lib/mysql/my.cnf

In /etc/my.cnf, the socket file config may be /tmp/mysql.sock and in /etc/mysql/my.cnf the socket file config may be /var/run/mysqld/mysqld.sock. So, remove or rename /etc/mysql/my.cnf, let mysql use /etc/my.cnf, then the problem may solved.


Try this:

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

Also (to see if it's running):

telnet 127.0.0.1 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 -u root
  4. Select the MySQL database to use

    use mysql;
  5. Reset the password

    -- MySQL version < 5.7update 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

    quit
  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
  1. Login with a new password

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

This was taken from Reset a MySQL root password.