/usr/local/hive/stocks.csv权限改回主用户
时间: 2023-07-06 20:40:21 浏览: 175
如果您已经将`/usr/local/hive/stocks.csv`文件的所有者更改为MySQL用户,并将文件权限设置为`644`,但是希望将文件的所有者改回原来的用户`hadoop0306`,可以使用以下命令:
```
sudo chown hadoop0306:hadoop0306 /usr/local/hive/stocks.csv
```
这样一来,文件的所有者就会被更改回原来的用户。请注意,如果MySQL用户需要继续访问该文件,您需要确保MySQL用户有足够的权限读取该文件。或者,您可以将文件复制到MySQL用户有权限读取的目录下,并使用`LOAD DATA INFILE`语句中的新路径。
相关问题
/usr/local/hive/stocks.csv权限-rw-r--r-- 1 hadoop0306 hadoop0306 116497085 1月 22 2014 /usr/local/hive/stocks.csv
根据您提供的信息,`/usr/local/hive/stocks.csv`文件的权限为`-rw-r--r--`,所有者为`hadoop0306`,所属组为`hadoop0306`。这意味着只有`hadoop0306`用户有读写权限,其他用户只有读取权限。
如果您正在使用MySQL的`LOAD DATA INFILE`语句导入数据,MySQL需要有足够的权限读取该文件。一种解决方法是将`/usr/local/hive/stocks.csv`文件的所有者更改为MySQL用户,例如`mysql:mysql`,并将文件权限设置为`644`,即:
```
sudo chown mysql:mysql /usr/local/hive/stocks.csv
sudo chmod 644 /usr/local/hive/stocks.csv
```
这样一来,MySQL用户就可以读取该文件了。如果您不想更改文件的所有者或权限,可以将`/usr/local/hive/stocks.csv`文件复制到MySQL用户有权限读取的目录下,并使用`LOAD DATA INFILE`语句中的新路径。
注意,如果您使用的是SELinux安全模块,还需要确保MySQL用户有读取`/usr/local/hive/stocks.csv`文件的SELinux权限。可以使用`ls -Z /usr/local/hive/stocks.csv`命令查看该文件的SELinux上下文,并使用`chcon`命令修改MySQL用户的SELinux上下文。例如:
```
sudo chcon -t mysqld_db_t /usr/local/hive/stocks.csv
```
load data infile '/usr/local/hive/stocks.csv' into table stocks与load data local infile '/usr/local/hive/stocks.csv' into table stocks有什么区别
这两个命令都是将数据从一个 CSV 文件加载到 Hive 表中。区别在于数据文件的位置。
- `load data infile '/usr/local/hive/stocks.csv' into table stocks`:这个命令将会在 Hive 客户端机器上寻找数据文件 `/usr/local/hive/stocks.csv`,然后将数据加载到 Hive 表 `stocks` 中。
- `load data local infile '/usr/local/hive/stocks.csv' into table stocks`:这个命令与上一个命令的区别在于 `local` 关键字,它表示在当前机器上寻找数据文件 `/usr/local/hive/stocks.csv`,然后将数据加载到 Hive 表 `stocks` 中。
因此,如果数据文件在 Hive 客户端机器上,你应该使用第一个命令;如果数据文件在当前机器上,你应该使用第二个命令。
阅读全文