回答

收藏

如何让MySQL作为其他用户写文件?

技术问答 技术问答 315 人阅读 | 0 人回复 | 2023-09-14

我正在处理一个写入外文件MySQL查询。我每天或每两天运行一次此查询,所以我希望删除输出文件而不求助su或sudo。我能想到的唯一方法是将outfile写入mysql用户以外的其他人拥有的文件。有可能吗?
) Y3 l% W- U" R' L3 y% i编辑:我没有将输出重定向到文件,而是使用选择查询INTO OUTFILE部分输出到文件。; p* U( I# f) r' |
如有帮助:& `( O* V" m* e: X  J# [# g) n
mysql --versionmysql  Ver 14.12 Distrib 5.0.32,for pc-linux-gnu (x86_64) using readline 5.2 2                                                                                                                                                                                                                                                                     
$ M2 v5 a  k1 ?2 D& L" ~    解决方案:                                                               
) O! x8 j( A# e" N+ N: F                                                                由输出文件mysqld创建过程,而不是户端过程。因此,输出文件必须归类为mysqld进程的uid和gid所有。
/ h- q2 h$ _" ~; w如果可以访问文件uid或gid必须使用以下流程访问文件sudo访问文件。换句话说,如果mysqld创建由uid和gid“ mysql”
2 ?' d9 R+ h  ]9 ~/“ mysql拥有的文件您自己的帐户添加到 mysql组中。然后,如果文件的许可模式包括组访问权限,则应访问文件。
0 Z- d' b/ J# S4 \' f' V9 J% F编辑:
/ c1 B" d2 a8 {$ c6 d* a! n您正在/" j+ l4 B% h3 |/ O8 l( J
tmp删除目录权限模式rwxrwxrwt文件。粘性位(’t’)说只是你的uid无论文件或目录的权限如何,只有与文件所有者相同时,才能删除文件。
  v+ l. W- z, b4 c将输出文件保存在未设置粘性位的另一个目录中,应正常删除该文件。
+ H- d3 z7 H% x" A) h! B5 h& `/ E请从手册页面阅读粘性(8)摘录:
5 V( S; {* @+ [; \粘性目录
: B1 h8 n' ~9 {! k. N' Y& q8 T设置粘性位置的目录将成为仅附加目录或更准确地限制文件删除的目录。如果用户有编写目录的许可证,用户是文件的所有者,目录的所有者或超级用户,粘性目录中的文件只能被用户删除或重新命名。该功能有用地应用于/
  r- ~9 H; v2 [$ y" i6 E8 }7 c8 Htmp此类目录必须公开写入,但应拒绝用户删除或重命名对方文件的许可。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则