mro*_*opa 6 mysql sql database linux
我的SELECT ... INTO OUTFILE声明中遇到了一些许可问题.
当我登录我的数据库并执行简单的导出命令时,例如:
mysql> select * from XYZ into outfile '/home/mropa/Photos/Desktop/TEST.txt';
Run Code Online (Sandbox Code Playgroud)
我得到了回应:
ERROR 1 (HY000):
Can't create/write to file '/home/mropa/Photos/Desktop/TEST.txt'
(Errcode: 13)
Run Code Online (Sandbox Code Playgroud)
但是,当我简单地写:
mysql> select * from XYZ into outfile 'TEST.txt';
Query OK, 8287 rows affected (0.73 sec)
Run Code Online (Sandbox Code Playgroud)
该文件将写入目录/var/lib/mysql/XYZ.我查看了/etc/apparmor.d/usr.sbin.mysqldmysql似乎定义了读取和写入权限的文件,但我真的不知道如何修改它.
如何允许自己将mysql表导出到我喜欢的任何目录中?
问题是目录权限.mysqld不以current_user身份运行.将mysqld用户添加到对目标目录具有写权限的组(方便但不安全),或者记住在编写outfile之前和之后更改目标目录权限.