我试图使用下面的命令转储我的 mysql 表
mysqldump --tab=/home/username/Desktop/basic/ --user myusername -p mysql user;
但它返回了一个错误说
mysqldump: Got error: 1: Can't create/write to file '/home/username/Desktop/basic/user.txt' (Errcode: 13) when executing 'SELECT INTO OUTFILE'
我使用 Ubuntu 14.04。我尝试按照说明禁用 apparmor这里。但错误仍然存在。还有其他解决方案吗?
编辑
我得到了 .sql 文件,但没有得到 .txt 文件
答案1
首先确保mysql
可以写入/home/username/Desktop/basic/
;如果您打算在同一个目录中进行多次转储,一个很干净的方法是将文件夹的所有权设置为,mysql
并在该文件夹上设置 SGID 权限(感谢 muru 的建议):这样mysqldump
将能够写入该文件夹,但新文件将从父目录继承组;这样做的好处是让您的用户对转储具有读、写和执行权限。
sudo chown mysql /home/username/Desktop/basic/ && sudo chmod g+s /home/username/Desktop/basic/
此外,在发出命令之前,请确保目标目录中没有任何文件命名user.sql
或存在;如果在发出命令之前无法写入目标目录或存在与预期输出文件之一同名的文件,则会失败。user.txt
mysql
mysqldump