B.5.2.13 ファイルを作成/書き込みできない

一部のクエリーで次のタイプのエラーを受け取る場合は、MySQL が一時ディレクトリに結果セットの一時ファイルを作成できないことを意味します。

Can't create/write to file '\\sqla3fe_0.ism'.

上記のエラーは Windows での一般的なメッセージです。UNIX のメッセージも似ています。

解決策の 1 つは、--tmpdir オプションを指定して mysqld を起動するか、オプションファイルの [mysqld] セクションにこのオプションを追加することです。たとえば、C:\temp ディレクトリを指定するには、次の行を使用します。


C:\temp ディレクトリが存在していて、MySQL サーバーが書き込むための十分な領域がある必要があります。セクション4.2.6「オプションファイルの使用」を参照してください。

このエラーの別の原因は権限の問題です。MySQL サーバーが tmpdir ディレクトリに書き込めることを確認してください。

perror で表示されるエラーコードも確認します。サーバーがテーブルに書き込むことができない原因の 1 つは、ファイルシステムが満杯であるためです。

shell> perror 28
OS error code  28:  No space left on device


Can't create test file /usr/local/mysql/data/master.lower-test

Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb
User Comments
  Posted by Jes Nielsen on April 11, 2006
Please notice that antivirus programs may sporadically lock MySQL temporary files, and make the server to throw an “Can't create/write to file '/tmp/#sql_3a5_0.MYI' (Errcode: 13)”. I fixed the problem by excluding the MySQL temporary directory from antivirus scanning.
  Posted by Meg Valentine on April 12, 2007
i fixed the problem by only including the fields that i needed in my select statement rather than *

ie i changed SELECT *

to SELECT FirstName, LastName
  Posted by Jon Webb on April 23, 2007
ERROR: Can't read/write to file...
i keep forgetting why it fails for me (i use windows and *nix), so heres what needs to be checked:
- antivirus interference (never caused me errors)
- use 'somefieldname' instead of * (never caused me errors)
- permissions (i've forgotten to give 'Everyone' Read & Write perms on windows, chmod 777 on *nix)
- give MySQL user FILE perms (CREATE USER MyDBconnecter...with FILE perms)
- $myroot=str_replace('\\','/',$_SERVER['DOCUMENT_ROOT']);
(this last one often trips me up: the \ causes trouble on windows)

Hope this helps others,
  Posted by Miha Novak on October 16, 2007
Preconditions: arch 64bit,kde
Problem: on mysqld restart there was the following error:
./usr/sbin/mysqld: Can't create/write to file '/tmp/ibg6qcGT' (Errcode: 13)
071017 1:08:58 InnoDB: Error: unable to create temporary file; errno: 13
071017 1:08:58 [ERROR] bdb: /var/lib/mysql: Permission denied
071017 1:08:58 [ERROR] bdb: /var/lib/mysql/log.0000000001: Permission denied
071017 1:08:58 [ERROR] bdb: PANIC: Permission denied
071017 1:08:58 [ERROR] bdb: PANIC: DB_RUNRECOVERY: Fatal error, run database recovery
071017 1:08:58 [ERROR] bdb: fatal region error detected; run recovery
071017 1:08:58 [ERROR] bdb: /var/lib/mysql: Permission denied
071017 1:08:58 [ERROR] Can't start server : Bind on unix socket: Permission denied
071017 1:08:58 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
071017 1:08:58 [ERROR] Aborting
I tried many things and read many thing but at the end I just went to the KUser (User Manager in kde),select mysql user and ticked into option Account Disabled and after it worked. It seems that that tick somehow refreshed the permissions.
  Posted by Jagdeep Singh on March 21, 2009
Turning "off" the scanning of windows/temp folder in the anti-virus resolved the issue for me.
I was not getting the issue for all the queries, but for some of them and that too not always. The error occurred when a lot of temporary MYI files were being created, and the anti-virus 'locked' the folder for scanning, before it could be written by next query result.

  Posted by Mike Tee on October 15, 2010
If you are running Microsoft Security Essentials on Windows, here's a way to fix the issue. Go to Settings > Excluded Files & Locations. Click on Add, and browser to the MySQL folder.

On my computer, it's c:\wamp\bin\mysql

Click OK, and Save Changes.
  Posted by Austin Swinney on January 5, 2011
On linux, Security-Enhanced Linux (SELinux) might be enabled.

`man selinux` or google "disable selinux"

  Posted by Dong Guo on December 8, 2011
If you are using RHEL or CentOS, it may be caused by SELinux firewall settings.
  Posted by curtis pastore on January 11, 2012
Here is a good link that really helped me out with SE linux

  Posted by don le quy on May 5, 2013
in Mac OS, if you made changes to folder temp (delete, recreate), the owner of folder "temp" should be changed, so mysql can not make changes with it

we have to change owner of folder "temp" to "nobody"

open terminal and enter without ""

"sudo chown nobody /applications/xampp/xamppfiles/temp"
then enter your computer's password

/applications/xampp/xamppfiles/temp is link to your folder "temp"
Sign Up Login You must be logged in to post a comment.