我知道这篇文章是旧的,但这仍然出现在搜索结果中。我在网上找不到这个问题的解决方案,所以我最终决定自己。如果你使用Ubuntu,那么有一个名为“Apparmor”的程序阻止MySQL看到该文件。这里是你需要做什么,如果你想让MySQL能够从“tmp”目录中读取文件:
sudo vim /etc/apparmor.d/usr.sbin.mysqld
一旦你在文件中,你将看到一堆MySQL可以使用的目录。添加行/ tmp / ** rwk到文件(我不确定它在哪里,但这里是一个示例我放在哪里):
/etc/mysql/*.pem r,
/etc/mysql/conf.d/ r,
/etc/mysql/conf.d/* r,
/etc/mysql/*.cnf r,
/usr/lib/mysql/plugin/ r,
/usr/lib/mysql/plugin/*.so* mr,
/usr/sbin/mysqld mr,
/usr/share/mysql/** r,
/var/log/mysql.log rw,
/var/log/mysql.err rw,
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/tmp/** rwk,
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/run/mysqld/mysqld.pid w,
/run/mysqld/mysqld.sock w,
现在所有你需要做的是重新加载Apparmor:
sudo /etc/init.d/apparmor reload
注意我使用“vim”,但用你喜欢的文本编辑器代替,你知道如何使用。