将数据导出到 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
设置的当前路径:
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
命令创建的文件中存在的记录。
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn