×


mysqldump error "can't create/write to file" - Fix it Now ?

Web Administrator encounter mysqldump error "can't create/write to file" while trying to perform mysqldump.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to resolve related MySQL errors.


Causes and fixes for mysqldump error "can't create/write to file" ?

We will see some of the cause for this along with the steps with which we fix this issue.

A typical error message may look like the one given below:

mysqldump -u root -p databasename> filename.sql Enter password: mysqldump: Error: 'Can't create/write to file ‘/var/tmp/#sql_a41_2.MAI’ (Errcode : 2)’ when trying to dump tablespaces mysqldump: Couldn’t execute ‘show fields from activated’: Can’t create/write to file ‘/var/tmp/#sql_a41_0.MAI’ (Errcode: 2) (1)


1. Lack of space in /tmp

This could be an issue with a lack of space in /tmp that does not allow the creation of files during the dump.

We can restart the service to clear any excessive temporary files:

$ /etc/init.d/mysqld restart

Also, we can try to start mysqld with the –tmpdir option or to add the option to the [mysqld] section of the options file.

To specify a directory of C:\temp, we can use the following lines:

[mysqld]
tmpdir=C:/temp

It is important that the C:\temp directory must exist and have sufficient space for the MySQL server to write to.


2. Incorrect Permission

This error can also be a result of incorrect permission or configuration. We need to ensure that the MySQL server can write to the tmpdir directory.

For this, we have to review the configuration file and permissions, particularly if we are using SELinux. We can use the following commands:

$ cat /etc/my.cnf | grep tmpdir
$ ls /var/tmp


3. Filesystem is full

We may get this mysqldump error if the filesystem is full. As one of the reasons that make the server unable to write to a table is that the file system is full.

We can also check the error code that we get with perror.

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

At times we may encounter an error of the following type during startup, it indicates that the file system or directory used for storing data files is write-protected. This write error is to a test file and the error can be safely ignored.

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


[Need assistance in fixing MySQL errors? We can help you. ]


Conclusion

This article covers to fix mysqldump error "can't create/write to file" for our customers. This error can be as a result of lack of space in your /tmp keeping the file from being created. It may also be the result of a permissions error or configuration error.


We recommend restarting the service to clear any excessive temporary files:

$ /etc/init.d/mysqld restart

If that doesn't improve the situation, we recommend reviewing your configuration file and permissions, particularly if you are using SE Linux:

$ cat /etc/my.cnf | grep tmpdir
$ ls /var/tmp