6

I encountered with the error Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' in Ubuntu 12.04.5 LTS. So,I uninstalled mysql 5.5 from Ubuntu 12.04.5 LTS.But when i tried to install mysql,i was unable to install mysql.

i used the following commands to uninstall mysql:

 sudo apt-get remove --purge mysql-server mysql-client mysql-common
 sudo apt-get remove --purge mysql-server-5.5 mysql-client-5.5 mysql-servercore-5.5 mysql-client-core-5.5
 sudo apt-get autoremove
 sudo apt-get autoclean
 sudo rm -rf /var/lib/mysql
 sudo rm -rf /etc/mysql
 sudo deluser mysql

I used the following commands to install mysql 5.5:

sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-server

But i was encountered with the following error:

 AppArmor parser error for /etc/apparmor.d/usr.sbin.mysqld in      /etc/apparmor.d/usr.sbin.mysqld at line 9: Could not open 'abstractions/mysql'
 start: Job failed to start
 invoke-rc.d: initscript mysql, action "start" failed.
 dpkg: error processing mysql-server-5.5 (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-server-5.5; however:
Package mysql-server-5.5 is not configured yet.
dpkg: error processing mysql-server (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup    error from a previous failure.
                                                                                                         Errors were encountered while processing:
mysql-server-5.5
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

When i type 'mysql' from terminal it returns the error:

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

I tried telnet 127.0.0.1 3306 after googling,it returned connection refused.

Can anyone please suggest a solution?

titto.sebastian
  • 511
  • 2
  • 7
  • 17
  • The **connection refused** error indicates that it is somehow installed and that your system knows the **mysql** command, did you try `service mysql restart` and try to open mysql again? maybe it is just hung. – weletonne Aug 20 '15 at 10:15
  • Yes,i tried it.It gave the output: **stop: Unknown instance: start: Job failed to start** – titto.sebastian Aug 20 '15 at 10:16
  • 1
    refer this link - http://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq – adarsh hota Aug 20 '15 at 10:22
  • Thank you adarsh hota,i run the command **' sudo find / -type s'**.but ** i could'nt see any socket open at /var/lib/mysql/mysql.sock.** – titto.sebastian Aug 20 '15 at 10:25
  • You also tried to restart apparmor like that: `service /etc/init.d/apparmor restart` and then restart mysql? – weletonne Aug 20 '15 at 10:38
  • Well,it also gave the output: **/etc/init.d/apparmor: unrecognized service ** – titto.sebastian Aug 20 '15 at 10:39

2 Answers2

9

Here is what fixed for me with Mariadb

First find out if your mysql config file ,most likely located at /etc/mysql/my.cnf or /etc/my.cnf has the correct mysql.sock entry or not

You can find out where mysql.sock file is located by running find / -type s , if the entry is not correct in your mysql config, file fix it , also make sure mysql.pid has the correct path as well.

Now try to start mysql server , if it starts fine and you can see all DB's and tables within , you are good and dont need to follow rest of the post .

If mysql fails to start after fixing mysql.sock path , read on

Add the following to your my.cnf file ,

innodb_force_recovery = 1 inside the mysqld block , and restart mysql.

If it fails to start , increment the number by one each time , but keep in mind , after 3 , their might be some data loss (not happened to me , but i have only read about anything above 3 being a salvaging measure , than a recovery)

Dont panic if some of the tables you previously had , stop showing that they dont exist in the engine . Ones mysql starts successfully (if you dont have a backup yet , better make one now , just in case things go south from here on) , remove innodb_force_recovery = 1 from my.cnf file and restart mysql again , all your tables should be available again.

Posts that helped me

Community
  • 1
  • 1
Golu
  • 414
  • 5
  • 16
1

In my case it was because the system memory RAM did not have enough space for the "free -hw" database, I was able to solve it with the use of swap

Domp
  • 11
  • 1