【问题标题】:How to store files in MySQL database using MySQL Workbench?如何使用 MySQL Workbench 将文件存储在 MySQL 数据库中?
【发布时间】:2017-08-24 07:59:44
【问题描述】:

我正在尝试将 .html 文件存储在 MySQL 数据库中(使用 MySQL Workbench)。目前我正在尝试执行load_file('filepath'),以便可以读取 .html 文件的内容并将其转换为字符串,并且该字符串将存储在数据库的表中。但问题是它似乎总是返回 null,所以我无法检查它是否真的有效。

我知道要通过 4 个标准才能使 load_file 工作,但我不知道必须执行哪些脚本才能授予权限。由于我正在尝试将文件的内容转换为字符串,也许还有另一种更有效的方法将整个 .html 文件存储到数据库中,如果是的话,谁能告诉我如何做到这一点?我的 MySQL 服务器的用户名是 root 并且在 Mac OS 上运行。

【问题讨论】:

  • `我不知道我必须执行哪些脚本才能授予权限`-您不必这样做,使用 MySQL 工作台中内置的功能来授予用户访问权限。如果函数返回 null,那么它不起作用。顺便说一句,将文件存储在数据库中并不总是一个好主意。
  • @Shadow 那么您认为最好将文件留在计算机中的文件夹中,然后将内容复制到数据库表中的字符串中吗?因为我有一个我自己创建的 Java Web 服务器,我希望它连接到 MySQL DB 并从那里获取数据/文件,而不是 Web 服务器搜索计算机的目录。我不确定我想要的方式是否最有效。
  • 你似乎在这里混合了不同的方面。这个load_file 函数是关于什么的?它与 MySQL Workbench 或 MySQL 无关。你的实际问题是什么?更具体一些,向我们展示您迄今为止所做的尝试。
  • @MikeLischke 这是我迄今为止尝试过的:SELECT load_file('file:///Users/Josh/iCloud Drive/Desktop/MyServer/src/html/index.html'); ,是的,它与 MySQL dev.mysql.com/doc/refman/5.7/en/string-functions.html 有关。
  • 不知道这是一个 MySQL 函数。你不应该依赖每个人都知道这个功能。看我的回答。

标签: html mysql database mysql-workbench


【解决方案1】:

load_file function 说:

要使用此功能,文件必须位于服务器主机上,您必须指定文件的完整路径名,并且您必须具有 FILE 权限。该文件必须可供所有人读取,并且其大小小于 max_allowed_pa​​cket 字节。如果将secure_file_priv 系统变量设置为非空目录名,则要加载的文件必须位于该目录中。

因此,有许多条件可以检查您是否真的可以加载文件。首先检查您的用户是否具有 FILE 权限以及您的 MySQL 服务器是否可以访问该文件。

【讨论】:

    【解决方案2】:

    对于正在寻找的人,我就是这样做的。 我有一张桌子

    CREATE TABLE `test` (
        `ID` int(11) DEFAULT NULL,
        `UPLOAD_FILE` mediumblob
    );
    

    然后我将文件 Smiley.jpg 保存为

    INSERT INTO test (`ID`, `UPLOAD_FILE`) VALUES ('1', LOAD_FILE('E:/smiley.jpg'));
    

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 2016-05-18
      • 2021-11-17
      • 2011-04-16
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      相关资源
      最近更新 更多