/usr/libexec/mysqld: Can’t create/write to file ‘/tmp/’ (Errcode: 13)

by on April 20, 2007 · 37 comments· LAST UPDATED February 11, 2014

in , ,

I'm using Red Hat Enterprise Linux server version 4.0+ and MySQL version 4.20+. Monit has recently notified me following error:
mysqld' failed to start.

A detailed log from /var/log/mysqld.log file:

Tutorial details
DifficultyEasy (rss)
Root privilegesYes
RequirementsNone
Estimated completion time1m

/usr/libexec/mysqld: Can't create/write to file '/tmp/ibCfJwf1' (Errcode: 13)
070420 10:07:58 InnoDB: Error: unable to create temporary file; errno: 13
070420 10:07:58 [ERROR] Can't init databases

070420 10:07:58 [ERROR] Aborting

070420 10:07:58 [Note] /usr/libexec/mysqld: Shutdown complete

/etc/init.d/mysql start command returned following output:
Initializing MySQL database: [ OK ]
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]

How do I fix this problem on Linux or Unix-like systems?

This error means, MySQL server is not able to access your /tmp directory, to write and create temporary files. Make sure /tmp directory is owned by root user and sticky bit is set on /tmp directory. Type the following commands to fix this error. You must be login as root user and type:

# chown root:root /tmp
# chmod 1777 /tmp
## test it ##
# /etc/init.d/mysqld start

Now, your mysql server should start without a problem.

A note about SELinux and AppArmor security policies

If you are using SELinux or AppArmor with customized data directory for database, you need to modify polices to allow MySQL to read and write to the data directory.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 37 comments… read them below or add one }

1 khmer August 30, 2008 at 2:31 am

Oh, dear. Thank you so much. You have save the day. I had this problem and found your site on Google and it works!!! thank you so much

Reply

2 Amit Shah October 31, 2008 at 1:49 pm

Thank a lot for posting answer. I had this problem and found your site on Google and its solve my problem!!!

Reply

3 JosK November 7, 2008 at 2:00 pm

THX!

Reply

4 EF November 15, 2008 at 10:04 pm

It’s not solving my problem. It’s still not starting. The same error shows up in the log file :(

Reply

5 Geen November 26, 2008 at 1:50 am

Didn’t fix mine either although my error was slightly different:
081127 2:38:09 [Warning] Can’t create test file /var/lib/mysql/bobby.lower-test
081127 2:38:09 [Warning] Can’t create test file /var/lib/mysql/bobby.lower-test
/usr/libexec/mysqld: Can’t change dir to ‘/var/lib/mysql/’ (Errcode: 13)
081127 2:38:09 [ERROR] Aborting

WHo can help me with this?

Reply

6 Steve January 13, 2009 at 5:14 am

Thanks your a genius works a treat was getting an error when restoring back up now everything fine

Reply

7 nowy9 March 9, 2009 at 12:20 am

Where should I type the commands to fix the error?

I use VertrigoSerwer 2.21
(Appache 2.0.63; PHP 5.2.6; MySQL 5.0.51b PhpMyAdmin 2.11.7)
This is WAP for Windows XP.

Reply

8 duong June 3, 2009 at 3:48 pm

Thank you for posting the fix. Mine is working after that.
Best regards.

Reply

9 Madhav vyas June 24, 2009 at 9:01 am

It still not works. It is not perfect solution.
Please give me other solution

Reply

10 adhitya christiawan nurprasetyo July 14, 2009 at 4:13 am

as usual, great article :)

Reply

11 jony August 20, 2009 at 11:33 am

thank you .. you save my day … i love you full hahaha

Reply

12 Fiifi Baidoo September 1, 2009 at 3:42 pm

Worked like magic, thanks man…

Reply

13 stevo September 3, 2009 at 3:29 pm

u rock. was going nuts!. thanks bruv

Reply

14 gara September 24, 2009 at 8:10 am

use system-config-securitylevel-tui

Security Level = Disable
SELinux = DISABLE

!!!!

Reply

15 Dave October 7, 2009 at 2:22 am

Thank you!!! A website that someone built 5 years ago just stopped working today, and I couldn’t figure it out until coming across this solution. You’re a lifesaver!

Reply

16 Jonas November 4, 2009 at 2:21 pm

I’m getting an error while starting mysqld in windows xp sp2. The error saying:
mysqld: Error on delete of ‘C:\Program Files\iBerry Logics\server\MySQL\data\Com 1.lower-test’ (Errcode: 22)

Can anybody please help me?

Reply

17 Balachandran November 12, 2009 at 2:51 pm

Dear ,

Really It was helpful. Thanks..

But when i am restarting —– “/etc/init.d/mysqld start” instead of mysqld i put mysql then its started.

Any way thanks.

Regards,
bala

Reply

18 Jonas November 13, 2009 at 7:29 am

Hi,

The problem was solved and the issue was about the computer name. They named their computer as com1,com2 and com3. MySQL server started to run after i renamed their system.

Regards

Reply

19 philippe January 16, 2010 at 8:05 pm

Thank you,
This worked for me too.

Reply

20 Carlos March 5, 2010 at 9:31 pm

Thank you, this was driving me crazy

Reply

21 Amol December 21, 2010 at 9:51 am

please solve this error,
I got this error while run the program,
PHP Fatal error: Uncaught exception ‘Exception’ with message ‘MySQL error:3-Error writing file ‘/tmp/MYpNMlAM’ (Errcode: 28).
plz help mi,
i check size used by temp bt it still used only 2% outoff 471M.
please guide mi properly

Reply

22 Nikhil January 19, 2011 at 8:13 am

Dude,
Your blog is the best ever seen, i mean you got solutions for each problem i have ever faced in my servers lol.
This is crazy, i just run back to your blog each time i face any issues.
Thanks a LOT for this awesome blog.

Reply

23 Sys-halt March 28, 2011 at 8:57 am

Thank you Vivek. It was very helpful. It solved my problem, the tmp directory was have no permissions on it due to a security hardening tool my colleagues ran on the server to enforce security on it.

Thank you again

Reply

24 David August 21, 2011 at 7:07 pm

You made my day.

Reply

25 yogesh August 23, 2011 at 8:03 am

BRAVO…. spend lots of time on it….. :( but u made it come true in just few sec..

thanks a lot.. cheerssssssss :D

Reply

26 Streaming film December 9, 2011 at 1:16 am

Thanks!
I was editing the tmp file to resize it and is appeard this message.
I solved it with your help, you are great!
Sorry for my bad english,
Bye!

Reply

27 Dom May 24, 2012 at 1:26 am

Thanks for this. Tried installing on a fresh install of fedora and kept getting this error. You saved me lots of time.

Reply

28 Ivan Carrasco Quiroz May 30, 2012 at 12:35 am

Thanks my friend, I was stuck for a while!
:-)

Reply

29 Navid October 1, 2012 at 10:20 am

I have the same problem,
here is a query I want to execute,

mysql> select * from remote into outfile ‘/home/nshaikh/mysql_out/outfile.txt’;

ERROR 1 (HY000): Can’t create/write to file ‘/home/nshaikh/mysql_out/outfile.txt’ (Errcode: 13)

I have changed the permission of file to ’777′;
I tried with ‘root’ and some other user ‘dump’, executing this command in mysql interactive shell,

please
reply with your valuable answers.
Thank you,

Reply

30 AJ October 25, 2012 at 9:38 pm

Thanks – saved a lot of trouble !

Reply

31 Navid October 29, 2012 at 5:36 pm

Hi,
I have another user for database say ‘navid’. How can I grant it permission to write to directory as in this case ‘/tmp’ ?

is ‘/tmp’ is only directory where we can set permissions for db users to write into or other directories can also be made writable?

thank you.

Reply

32 xianzong.huang May 30, 2013 at 1:55 pm

Thank you very much, you saved me.

Reply

33 Doubi November 6, 2013 at 9:57 pm

Thanks Dude!
Fix the problem.

Reply

34 peter February 4, 2014 at 11:56 am

Thanks alot. I was able to fix the problem.

Reply

35 sp0tz February 5, 2014 at 6:07 pm

this worked. fixed my problems with mysql. thanks!

Reply

36 Omkar A February 11, 2014 at 11:01 am

Thanks man. You saved a hell lot of time for me :)

Its like any directory you want to access through mysql should be owned by root and permission set as 777.

Thanks !!

Reply

37 Pepe March 13, 2014 at 6:44 pm

GRACIAS!! thx!!

Reply

Leave a Comment

Tagged as:

Previous Faq:

Next Faq: