mysql - MySQL - chroot 环境中的 OUTFILE
问题描述
我想在远程服务器 mysql 上导出一些数据,然后将其加载到客户端的 mysql 中。由于数据量巨大,我尝试使用它INTO OUTFILE
来加快速度。
我尝试通过以下方式将 20GB 表的数据导出到 csv / tsv 文件中OUTFILE
:
SELECT * INTO OUTFILE "test.csv" FROM myTable
我在一个 chrooted 环境中,但不知何故,mysql 确实在文件夹中的 chrooted 环境之外/var/lib/mysql/myTable/test.csv
创建了文件。
如果我现在尝试通过 scp 将该导出的 csv 文件复制到客户端,则没有任何效果,因为该文件不在 chrooted 环境中(而是在“真正的 /var/lib/mysql/myTable”文件夹中):
scp user@server:/var/lib/mysql/myTable/test.csv ./test.csv
看在上帝的份上,为什么 MySQL 对大数据集如此痛苦?我想由于权限问题,没有办法在正确的文件夹中获取东西,fe /var/www/vhosts/my-chrooted-environment/my-folder/test.csv
(mysql无法写入另一个文件夹,甚至被禁用)。secure_file_priv
即使目标文件夹已更改为777
...
有没有办法在没有 INTO OUTFILE 语句的情况下获得快速的 csv/tsv 输出?
解决方案
推荐阅读
- sql - SQL如何用有效的查询替换许多“IF”
- c++ - 在 C++17 / C++20 中从 wstring 转换为 u16string 并返回(标准符合)
- python - 如何获取查询集并为每个对象获取查询集
- javascript - 如何在表格中显示随机图像
- python - 如何将 random.choice 转换为整数进行实验?
- java - Spring Data @Query 使用 VARCHAR 而不是 NVARCHAR
- javascript - 为什么我得到 req.next 不是函数错误?
- node.js - Google App Engine 随机自动重启
- flutter - 如何在flutter中从Stripe信用卡获取tokenID
- java - 如何使用 Android 导航组件在某些片段中隐藏操作栏?