The MySQL server won't start and is reporting the following error:

/usr/local/mysql/bin/mysqld: Can't create/write to file '/usr/local/mysql/data/James-Barnhills-Mac-Pro.local.pid' (Errcode: 13)
Can't start server: can't create PID file: Permission denied

All the permissions are set recursively as:

lrwxr-xr-x 1 _mysql wheel 27 Nov 22 09:25 mysql -> mysql-5.5.18-osx10.6-x86_64

but it won't start. I've tried reinstalling several times to no avail.

I'm running as root on Mac OS, and MySQL has read, write, and execute permissions on the "data" folder.

  • ls -ld /usr/local/mysql/data/?
    – quanta
    Nov 24, 2011 at 2:35
  • drwxr-xr-x 13 _mysql wheel 442 Nov 24 09:04 mysql/data/ Nov 24, 2011 at 15:11
  • ls -ld /usr/local/mysql-5.5.18-osx10.6-x86_64/?
    – slillibri
    Dec 5, 2011 at 1:27
  • @JamesBarnhill To expand on my earlier comment, make sure _mysql has x permissions to /usr/local/mysql-5.5.18-osx10.6-x86_64/, not just /usr/local/mysql as that is just a symlink. If you chmod +x /usr/local/mysql-5.5.18-osx10.6-x86_64/ it should start (at least that would match the working perms on my MBP).
    – slillibri
    Dec 5, 2011 at 1:54
  • 1
    I resolved this issue by running sudo chmod -R 0771 /usr/local/mysql-*, giving /usr/local/mysql-5.5.18-osx10.6-x86_64/ the permissions drwxrwx--x 18 _mysql wheel. Dec 5, 2011 at 8:09

2 Answers 2


The permission errors are because you have the directory set to the Octal Permission 0751. This means the User can read write and execute but everyone else can't. Since you aren't the user _mysql you don't have permissions. You can do two things to fix this.

  • You could start it by putting sudo in front of the command you use to start the mysqld service.

    sudo service mysqld start

  • You could set the permissions recursively to 0771. This will allow the wheel (administrator) group to write to the directory.

  • I'm am already running the command mysqld_safe as root. Permissions set to 0771, I ran the command again; still the same error code, reverted permissions back. Nov 24, 2011 at 15:12

Its not because you start mysql as root that its actuality started as that user. Check /etc/my.cnf and compare whether the owner of the mysql data dir is the same as specified by the parameter user=mysql_owner.

If its for example "mysql", then root switches to that user (behind the scenes) before starting mysql

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.