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

by on April 20, 2007 · 31 comments· last updated at April 20, 2007

Q. I’m using Red Hat enterprise Linux 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:

/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?

A. MySQL is not able to access your /tmp directory to wirte and create temporary files. Make sure /tmp is owned by root and sticky bit is set on /tmp directory. Type the following commands to fix the error:
# chown root:root /tmp
# chmod 1777 /tmp
# /etc/init.d/mysqld start

Now mysql should start without a problem.



You should follow me on twitter here or grab rss feed to keep track of new changes.

Featured Articles:

{ 31 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

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <kbd> <blockquote> <pre> <a href="" title="">

Tagged as:

Previous Faq:

Next Faq: