将数据导出到 MySQL 中的 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 设置的当前路径:

SHOWVARIABLESLIKE"secure_file_priv";

使用带有变量名称的路径更改配置变量值。遍历到变量中显示的目的地。

在该位置找到 my.ini。搜索 secure_file_priv 变量并将值替换为空值。

下面是默认情况下图像变量值如何呈现的屏幕截图。

将数据导出到 MySQL 中的 Outfile

导航到变量存在的路径。用户将能够找到 my.ini 文件。

更改相同变量的配置并再次保存文件。重新启动服务器以查看错误是否消失。

上述命令的变化如下:

SELECTstu_id,stu_name,stu_age,stu_addINTOOUTFILE'outfile.csv'FIELDSTERMINATEDBY','OPTIONALLYENCLOSEDBY'"'LINESTERMINATEDBY'\n'FROMtablename;

该命令允许用户指定表中存在的转义序列。表格内的列由逗号、, 或管道| 或制表符分隔。

可以在插入时使用上述命令和特定命令对其进行配置。

上述命令的详细阐述如下。

  1. SELECT * 命令用于选择特定表的所有记录。
  2. INTO OUTFILE 关键字向服务器表明特定命令将对文件进行输出操作。
  3. filename 说明了插入输出的文件。
  4. FIELDS TERMINATED BY 选项允许用户指定列和属性分隔所需的字符。它增加了文件的可读性。关键字允许用户转义 CSV 文件中的特殊字符。
  5. OPTIONALLY ENCLOSED BY 选项不是一个应该提供的强制性选项。它允许用户提供字符串格式的序列。
  6. LINES TERMINATED BY 选项允许将\n 转义序列视为输出文件中的换行符。此选项有助于更好地理解输出文件中的表格和解释。
  7. 最后,可以提供一个表名,它包含了整个命令。上面给出的所有选项都被包装并限制在 table_name 上。需要对以下语句执行操作。

下面提供了 MySQL 命令提示符的图像。

将数据导出到 MySQL 中的 Outfile

它显示了在本地 MySQL 命令提示符下执行的命令。

将数据导出到 MySQL 中的 Outfile

现在,上面的输出是使用 outfile 命令创建的文件中存在的记录。