Fix Missing Mysqld.sock on Linux

Hi! It’s been a long time since my last post. Why I wrote this? It’s because I got this error last night and it annoyed me so much. Well, I’ve ever got the same error, several months ago.

Alright, the error is kind like this:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

We could find that error from PHP error notice or from Terminal when we try to open MySQL connection.

After some hours of Googling, and have no result, I tried my own way. I took it from several sources. And here’s how:

  1. You have to use your root access
  2. Change the directory to /var/run/mysqld
    cd /var/run/mysqld
  3. Create an empty mysqld.sock file
    touch mysqld.sock
  4. Give executable permission to sock file
    chmod +x mysqld.sock
  5. Change permission to mysql user
    chown mysql:mysql -R *
  6. Change the working directory to /tmp
    cd /tmp
  7. Create a symlink to the sock file
    ln -s /var/run/mysqld/mysqld.sock mysqld.sock
  8. And at last, run the MySQL /etc/init.d/mysql start.

Yeah, my db is up now. 🙂

Let Contributor Edit Their Published Posts on WordPress

Yesterday, I asked by a friend to publish his post at Blogazinist (dead). I published it then, and realized that the post was not the final yet. He wanted to edit it, so I pending that post again. And had been doing those activity for many times.

By default, we set registered user on Blogazinist as a contributor. After reading a while at WordPress Codex about User Roles and Capabilities, I knew that contributor can edit their posts, but not after it’s published. Then I scrolling down edit_published_posts capability. Then I thought to add that capability to contributor role.

We all knew, WordPress gives easy way to modify its core functions by hooking to that function. So, to achieve that, I hooked to admin_init function. Also using get_role function to get contributor role and add a new capability on it.

function contributor_edit_published() {
    $contributor = get_role('contributor');
add_action('admin_init', 'contributor_edit_published');

By now, Blogazinist’s contributor could edit their published posts. :)