mysql上执行load data infile '/usr/local/hive/stocks.csv' into table stocks与load data local infile '/usr/local/hive/stocks.csv' into table stocks有什么区别
时间: 2023-12-09 09:05:42 浏览: 27
这两个命令都是将数据从一个 CSV 文件加载到 MySQL 表中。区别在于数据文件的位置。
- `load data infile '/usr/local/hive/stocks.csv' into table stocks`:这个命令将会在 MySQL 服务器上寻找数据文件 `/usr/local/hive/stocks.csv`,然后将数据加载到 MySQL 表 `stocks` 中。
- `load data local infile '/usr/local/hive/stocks.csv' into table stocks`:这个命令与上一个命令的区别在于 `local` 关键字,它表示在当前客户端机器上寻找数据文件 `/usr/local/hive/stocks.csv`,然后将数据加载到 MySQL 表 `stocks` 中。
因此,如果数据文件在 MySQL 服务器上,你应该使用第一个命令;如果数据文件在当前客户端机器上,你应该使用第二个命令。需要注意的是,在使用 `load data local infile` 命令时,需要确保 MySQL 客户端和服务器的 `local_infile` 参数都开启。
相关问题
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 客户端机器上,你应该使用第一个命令;如果数据文件在当前机器上,你应该使用第二个命令。
/usr/local/hive/stocks.csv权限改回主用户
如果您已经将`/usr/local/hive/stocks.csv`文件的所有者更改为MySQL用户,并将文件权限设置为`644`,但是希望将文件的所有者改回原来的用户`hadoop0306`,可以使用以下命令:
```
sudo chown hadoop0306:hadoop0306 /usr/local/hive/stocks.csv
```
这样一来,文件的所有者就会被更改回原来的用户。请注意,如果MySQL用户需要继续访问该文件,您需要确保MySQL用户有足够的权限读取该文件。或者,您可以将文件复制到MySQL用户有权限读取的目录下,并使用`LOAD DATA INFILE`语句中的新路径。