HOWTO · MySQL
将数据导出到 MySQL 中的 Outfile
本文介绍如何将 SQL 导出到 outfile。
本页内容
在某些情况下,用户希望在输出文件或某些本地存储中捕获操作。存储可以是 CSV 文件或记事本,其中可以放置 SQL 的内容。
该文件是使用 MySQL 的 outfile 命令生成的。此命令允许用户将 SQL 输出导出并捕获到特定文件中。
select into outfile 命令允许用户在特定列中插入行,并且使用选项允许读取表和输出文件中所需的格式类型。它有助于以用户定义的格式表示文件中的表。
语法:
select * from stu into outfile "outfile.txt";
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option, so it cannot execute this statement
当用户尝试执行命令时,会填充上述错误。错误填充的原因是 MySQL 服务器安装,默认配置为 .ini 文件中的 --secure-file-priv。
该选项不允许出于安全目的导入和导出库。此变量存在于限制用户将数据共享到外部文件的 sqld 文件下。
可以使用以下命令查看为变量 --secure-file-priv 设置的当前路径:
SHOW VARIABLES LIKE "secure_file_priv";
使用带有变量名称的路径更改配置变量值。遍历到变量中显示的目的地。
在该位置找到 my.ini。搜索 secure_file_priv 变量并将值替换为空值。
下面是默认情况下图像变量值如何呈现的屏幕截图。
导航到变量存在的路径。用户将能够找到 my.ini 文件。
更改相同变量的配置并再次保存文件。重新启动服务器以查看错误是否消失。
上述命令的变化如下:
SELECT stu_id, stu_name, stu_age, stu_add INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM tablename;
该命令允许用户指定表中存在的转义序列。表格内的列由逗号、, 或管道| 或制表符分隔。
可以在插入时使用上述命令和特定命令对其进行配置。
上述命令的详细阐述如下。
SELECT *命令用于选择特定表的所有记录。INTO OUTFILE关键字向服务器表明特定命令将对文件进行输出操作。filename说明了插入输出的文件。FIELDS TERMINATED BY选项允许用户指定列和属性分隔所需的字符。它增加了文件的可读性。关键字允许用户转义 CSV 文件中的特殊字符。OPTIONALLY ENCLOSED BY选项不是一个应该提供的强制性选项。它允许用户提供字符串格式的序列。LINES TERMINATED BY选项允许将\n转义序列视为输出文件中的换行符。此选项有助于更好地理解输出文件中的表格和解释。- 最后,可以提供一个表名,它包含了整个命令。上面给出的所有选项都被包装并限制在 table_name 上。需要对以下语句执行操作。
下面提供了 MySQL 命令提示符的图像。
它显示了在本地 MySQL 命令提示符下执行的命令。
现在,上面的输出是使用 outfile 命令创建的文件中存在的记录。