gpt4 book ai didi

sql - 在mysql中存储二进制数据

转载 作者:IT王子 更新时间:2023-10-29 00:31:24 30 4
gpt4 key购买 nike

我在本地机器上有一个 PDF 文件。我想将此文件上传到 SQL 数据库上的 BINARY BLOB。这里提到的其他方法 [ Binary Data in MySQL全部使用PHP。我想要一种简单干净的方法来在 Linux 命令行上上传此 PDF 文件。不幸的是,我无权访问远程文件系统,因此不能像其他地方提到的那样只存储指向文件的链接......我有点需要使用这个 MySQL 数据库作为这些 PDF 文件的虚拟文件系统......

从 PhP 示例来看,似乎只需要在使用 INSERT 命令之前转义斜杠?有没有一种简单的方法可以在 Linux 命令行上实现这一点?

最佳答案

您可以使用 mysql 函数 LOAD_FILE我想结合一个小的 shellscript 来做到这一点。

未经测试的代码如下:

#!/bin/bash

if [ -z $1 ]
then
echo "usage: insert.sh <filename>"
else
SQL="INSERT INTO file_table (blob_column, filename) VALUES(LOAD_FILE('$1'), '$1')"

echo "$SQL" > /tmp/insert.sql
cat /tmp/insert.sql | mysql -u user -p -h localhost db
fi

你可以这样使用它:

<prompt>./insert.sh /full/path/to/file

通过错误检查、适当的临时文件创建、转义和其他细节实现更好的实现留给读者作为练习。请注意,使用 LOAD_FILE() 需要 MySQL 中的 FILE 权限和文件的完整路径。

关于sql - 在mysql中存储二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1098681/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com