Blog coding and discussion of coding about JavaScript, PHP, CGI, general web building etc.

Friday, August 26, 2016

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

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


I'm just new to mysql so I apologize for any silly questions. My problem started off with me not being able to log in as root anymore into my mysql install. I was attempting to run mysql without passwords turned on... but whenever I would run the command :

    # mysqld_safe --skip-grant-tables &  

I would never get a prompt back... (I was trying to follow the instructions here: http://www.cyberciti.biz/tips/recover-mysql-root-password.html) The screen just looks like this:

 root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables   120816 11:40:53 mysqld_safe Logging to syslog.   120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql  

and I don't get a prompt to start typing the sql commands to reset the password.

When I kill it by doing a CTRL + C, I get the following message:

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

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

If I retry the command and leave it long enough, I do get the following series of messages:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.  120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql  120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended    [1]+  Done                    mysqld_safe --skip-grant-tables  root@jj-SFF-PC:/run/mysqld#  

But then if i try to log in as root by doing:

# mysql -u root  

I get the following error message:

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

I checked and /var/run/mysqld/mysqld.sock file doesn't not exist. The folder does, but not the file.
Also, I dunno if this helps or not, but I found did a find / -name mysqld and it came up with:

/var/run/mysqld - folder  /usr/sbin/mysqld - file  /run/mysqld - folder  

I'm just new to linux and mysql, so i don't know if this is normal or not. But I'm including this info just in case it helps ...

** I finally decided to uninstall and reinstall mysql. **

apt-get remove mysql-server  apt-get remove mysql-client  apt-get remove mysql-common  apt-get remove phpmyadmin  

After resintalling all packages again in the same order as above, during the phpmyadmin install, it gave me the same error -

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

So I tried again to uninstall/reinstall. This time, after I uninstalled the packages, I also manually renamed all mysql files and directories to mysql.bad in their respective locations.

 /var/lib/mysql    /var/lib/mysql/mysql   /var/log/mysql   /usr/lib/perl5/DBD/mysql   /usr/lib/perl5/auto/DBD/mysql   /usr/lib/mysql   /usr/bin/mysql   /usr/share/mysql   /usr/share/dbconfig-common/internal/mysql   /etc/init.d/mysql   /etc/apparmor.d/abstractions/mysql   /etc/mysql  

Then I tried to reinstall mysql-server, mysql-client again. But I've noticed that it doesn't prompt me for a password. Isn't it supposed to ask for an admin password?

Answer by Ray for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


To find all socket files on your system run:

sudo find / -type s  

My Mysql server system had the socket open at /var/lib/mysql/mysql.sock

Once you find where the socket is being opened, add or edit the line to your /etc/my.cnf file with the path to the socket file:

socket=/var/lib/mysql/mysql.sock  

Sometimes the system startup script that launched the command line executable specifies a flag --socket=path. This flag could override the my.cnf location, and that would result in a socket not being found where the my.cnf file indicates it should be. Then when you try to run the mysql command line client, it will read my.cnf to find the socket, but it will not find it since it deviates from where the server created one. So, Unless you care where the socket resides, just changing the my.cnf to match should work. I

If you're super user in the linux system, based on the above just do this:

kill -9 4969  

or sometimes you can do this:

pkill -9 mysqld  

After you do this you might want to look for a pid file in /var/run/mysqld/ and delete it

Make sure the permissions on your socket is such that whatever user mysqld is running as can read/write to it. An easy test is to open it up to full read/write and see if it still works:

chmod 777 /var/run/mysqld/mysqld.sock  

If that fixes the issue, you can tailor the permissions and ownership of the socket as needed based on your security settings.

Also, the directory the socket resides in has to be reachable by the user running the mysqld process.

Answer by Taimoor Changaiz for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


I faced same error and found that it was due to upgradation of packages, So after restarting my system I resolved error.

I think due to sql libraries/ packages update that error occured, So try this if you are doing some upgrading :)

Answer by Ioan Stef for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


The solution is way easier.

  1. First, you have to locate(in Terminal with "sudo find / -type s") where your mysql.sock file is located. In my case it was in /opt/lampp/var/mysql/mysql.sock
  2. Fire up Terminal and issue sudo Nautilus
    This starts your Files manager with super user privileges
  3. From Nautilus navigate to where your mysql.sock file is located
  4. Right click on the file and select Make Link
  5. Rename the Link File to mysqld.sock then Right click on the file and Cut it
  6. Go to /var/run and create a folder called mysqld and enter it
  7. Now right click and Paste the Link File
  8. Voila! You will now have a mysqld.sock file at /var/run/mysqld/mysqld.sock :)

Answer by spencer for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


you can find mysqld.sock in /var/run/mysqld if you have already installed mysql-server by sudo apt-get install mysql-server

Answer by coolcool1994 for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


Okay just copy and paste these codes: This should be done in the terminal, inside a server, when your mysql database is not properly installed, and when you are getting this error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'.

Stop MySql

sudo /etc/init.d/mysqld stop  

Restart it or start it

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start  

Make a link like this and give it to the system

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock  

Run a secure installation which guides all the process you need to do to configure mysql

/usr/bin/mysql_secure_installation  

Answer by user2780494 for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


locate the my.cnf file with the mysql config mine was under /etc/mysql/my.cnf (change the location where it says socket accordingly)

port            = 3306  socket          = /tmp/mysql.sock  

Here is entries for some specific programs

The following values assume you have at least 32M ram

This was formally known as [safe_mysqld]. Both versions are currently parsed.

[mysqld_safe]  socket          = /tmp/mysql.sock  nice            = 0  

Answer by amindri for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


In My case two mysqld processes were running.. killed the optional processs by using pkill -9 mysqld

Answer by user3002884 for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


The answer of the user load step worked for me. Sometimes is need edit the file in /etc/mysql/my.cnf add line to client

[client]  password = your_mysql_root_password  port  = 3306  host  = 127.0.0.1  socket  = /var/lib/mysql/mysql.sock  

Answer by retsie for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


just type this code in terminal sudo opt/lampp/bin/mysql -u root or sudo opt/lampp/bin/mysql -u root -p if you have set a password..

Answer by user3296580 for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


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

Sometimes it is due to when mysql server goes down , in live server i think you should have to restart server and also in localhost you need to restart mysql server .

Answer by knb for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


If you have a lot of databases and tables on your system, and if you have innodb_file_per_table set in my.cnf, then your mysql server might have run out of opened objects / files (or rather the descriptors for these objects) Set a new max number with

open-files-limit = 2048  

and restart mysql. This approach might help when the socket is not created at all, but really this might not not be the real problem, there is an underlying problem.

Answer by Joe Cheng for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


Try this command,

sudo service mysql start  

Answer by Buddheshwar Ojhar for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


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

solutions

finally uninstall and reinstall mysql. **

  • sudo apt-get remove mysql-server
  • sudo apt-get remove mysql-client
  • sudo apt-get remove mysql-common
  • sudo apt-get remove phpmyadmin

then install again by

  • sudo apt-get install mysql-server-5.6

After this operation, 164 MB of additional disk space will be used.

  • Do you want to continue? [Y/n] Y press YES for complete installations

...... .......

  • At last you will get these lines....

    Setting up libhtml-template-perl (2.95-1) ...

    Setting up mysql-common-5.6 (5.6.16-1~exp1) ... Processing triggers for libc-bin (2.19-0ubuntu6) Processing triggers for ureadahead (0.100.0-16) ...

  • And then

    root@ubuntu1404:~# mysql -u root -p (for every password first u should use )

  • Enter password:

  • Note :Entered password should be same as the installation time password of mysql(like .root,system,admin,rahul etc...)

    Then type

  • USE rahul_db(database name);

Thanks.**

Answer by Hammad Raza for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


This error occurs due to multiple installations of mysql. Run the command:

ps -A|grep mysql  

Kill the process by using:

sudo pkill mysql  

and then run command:

ps -A|grep mysqld  

Also Kill this process by running:

sudo pkill mysqld  

Now you are fully set just run the following commands:

service mysql restart  mysql -u root -p  

Have very well working mysql again

Answer by Bilal for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


Maybe someone facing this problem. I am using Mysql Workbench on Ubuntu 14 and got this error.

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect  

Find your socket file by running sudo find / -type s, in my case it was /run/mysqld/mysqld.sock

So, I just created a link to this file in tmp directory.

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock  

Answer by Leopathu for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


There is a lots of reason for this issue, but sometimes just restart the mysql server, it will fix the issue.

sudo service mysql restart  

Answer by Dulla De Cozta for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


Changing the host to 127.0.0.1 worked for me.

Edit the file in /etc/mysql/my.cnf and add the below mentioned line to the section: client

[client]  port  = 3306  host  = 127.0.0.1  socket  = /var/lib/mysql/mysql.sock  

After you are done with it. Execute the following command.

sudo service mysql start  

Answer by Aman Chawla for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


I run my MySQL on a virtual machine in Ubuntu, So what had happened was when I restarted my host and the VM, The IP had changed. I had configured mysql to run on IP 192.168.0.5 and now due to dynamic allocation of IP, my new IP was 192.168.0.8

If you have the same problem just check your ip with the command ifconfig.

Check your MySQL binding with the command cat /etc/mysql/my.cnf | grep bind-address

If both IP are the Same, then reinstall your mysql server

If not, then change your IP in /etc/network/interfaces using nano, vi, vim or anything of your preference.

I prefer sudo nano /etc/network/interfaces

and enter the following

auto eth0  iface eth0 inet static  address 192.168.0.5  netmask 255.255.255.0  

Save the interfaces file, restart your interface sudo ifdown eth0 && sudo ifup eth0 replace "eth0" with your network interface

Restart MySQL sudo service mysql stop followed by sudo service mysql start

If you have the same issue as mine, You are good to go!

Answer by NadZ for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


This solution can help others, sometimes the fix is very simple.

In your live environment restart mysql server and apache

sudo service mysql restart  sudo apache services restart  

this is a common problem when you install a plugin or execute any database commands.

Answer by Dew for error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'


I just had this problem on Ubuntu 14.10

Turns that mysql-server was no longer installed (somehow it had been removed) but I couldn't just install it because there were some broken packages and dependency issues/conflicts.

In the end I had to reinstall mysql

sudo apt-get remove mysql-client  sudo apt-get install mysql-server  

Related Posts:

0 comments:

Post a Comment

Popular Posts

Fun Page

Powered by Blogger.