Mysql into outfile导出的文件其他用户不可读
时间: 2023-12-05 12:06:16 浏览: 104
默认情况下,使用MySQL的`INTO OUTFILE`语句导出的文件权限设置为默认文件权限。这意味着,如果当前用户有写入该文件的权限,那么其他用户也将能够读取该文件。
如果你想让导出的文件仅限于当前用户可读,可以在`INTO OUTFILE`语句中指定文件的权限模式,例如:
```
SELECT *
INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
MODE 600; -- 设置文件权限为600
```
在上面的代码中,`MODE 600`指定了导出文件的权限模式为600,这意味着只有当前用户拥有读取和写入该文件的权限,其他用户无法读取该文件。
如果你想让其他用户也能读取该文件,但不希望其他用户修改该文件,可以将权限模式设置为`640`,这样当前用户和同组用户可以读取该文件,其他用户无法读取和修改该文件。
```
SELECT *
INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
MODE 640; -- 设置文件权限为640
```
相关问题
Mysql8.0中 into outfile导出的文件其他用户不可读
在 MySQL 8.0 中,`INTO OUTFILE` 导出的文件默认权限为 0600,即只有当前用户可以读写该文件,其他用户无法读取该文件。
如果需要让其他用户也能够读取该文件,可以使用以下方法:
1.修改文件权限:使用 `chmod` 命令修改文件权限为 0644 或更高权限,例如:
```
chmod 0644 /path/to/file
```
2.修改 umask 权限掩码:在当前用户的 shell 环境中执行以下命令,将 umask 权限掩码修改为 0022 或更小的值。
```
umask 0022
```
这样,在执行 `INTO OUTFILE` 导出文件时,默认权限就会为 0644 或更高权限,其他用户也能够读取该文件。
注意:如果需要将导出的文件放置在其他目录中,需要确保当前用户对该目录具有写入权限。
mysql into outfile导出文件在哪
`INTO OUTFILE`语句将MySQL查询的结果导出到指定的文件中。导出文件的路径取决于指定的路径。
如果指定的是相对路径,则导出文件将保存在MySQL数据目录中。可以使用以下命令找到MySQL数据目录的位置:
```
SHOW VARIABLES LIKE 'datadir';
```
如果指定的是绝对路径,则导出文件将保存在指定路径中。
阅读全文