7

Hello I cant seem to connect to my mysql server, i get the following error

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

when i checked the logs , it showed me the following :

130314 12:36:16 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'plugin' is read only
130314 12:36:16 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
130314 12:36:16  InnoDB: Initializing buffer pool, size = 8.0M
130314 12:36:16  InnoDB: Completed initialization of buffer pool
130314 12:36:16  InnoDB: Started; log sequence number 13 1336891001
130314 12:36:16 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/lib/mysql/live.pid' (Errcode: 13)
130314 12:36:16 [ERROR] Can't start server: can't create PID file: Permission denied
Nauman Bashir
  • 1,732
  • 3
  • 18
  • 26

4 Answers4

13

I had sample problem with mysql. I run under root permission but don't known why this error happen. The problem is mysql user don't have permission to create pid file in /var/run/mysqld. Full log could look like:

140812 09:35:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140812  9:35:53  InnoDB: Initializing buffer pool, size = 8.0M
140812  9:35:53  InnoDB: Completed initialization of buffer pool
140812  9:35:53  InnoDB: Started; log sequence number 0 197396648
140812  9:35:53 [ERROR] /usr/libexec/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13)
140812  9:35:53 [ERROR] Can't start server: can't create PID file: Permission denied
140812 09:35:53 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

So the solution is assign mysql user to this directory:

# chown mysql:mysql /var/run/mysqld

and then start mysqld

# service mysqld start
Khai Nguyen
  • 3,065
  • 1
  • 31
  • 24
4

I had the same problem under Redhat and this page had the steps to switch the mysql directory.

service mysqld stop
mkdir /srv/mysql/
chown mysql:mysql /srv/mysql

edit /etc/mysql/my.cnf and set datadir=/srv/mysql & socket=/srv/mysql/mysql.sock

Additional steps are required if you are using SELinux and then finally start the server

service mysqld start
Sumit
  • 71
  • 1
  • 5
  • 1
    Note that [link-only answers](http://meta.stackoverflow.com/tags/link-only-answers/info) are discouraged, SO answers should be the end-point of a search for a solution (vs. yet another stopover of references, which tend to get stale over time). Please consider adding a stand-alone synopsis here, keeping the link as a reference. – kleopatra Aug 15 '13 at 10:56
  • 404 for that page. You were saying? – Carl Whalley Feb 01 '18 at 16:41
  • By reading just the link URL, "change the default mysql data directory with selinux enabled", I pressume OP's problem was a SElinux issue. – vegatripy Apr 09 '18 at 11:18
2

In some cases, this error is because we have wrong permissions in log file /var/log/mysqld.log

chown mysql:mysql /var/run/mysqld
0

After 2 hours of missing quality Netflix programming I just went ahead and:

chmod -R 777 /usr/local/mysql
chmod -R 777 /usr/local/mysql-5.6.19-osx10.7-x86_64

... on OSX Mavericks. PITA.

Darth Jon
  • 413
  • 8
  • 18