【问题标题】:mysql load_file all prereqs fulfilled but still not workingmysql load_file 所有先决条件都已完成但仍无法正常工作
【发布时间】:2016-11-21 09:25:16
【问题描述】:

我遇到了 MYSQL LOAD_FILE 的问题。每当我执行某事时 UPDATE product_category SET thumbnail= LOAD_FILE('C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\thumbnail.png') WHERE id = 2;

我明白了

0 行受影响 匹配行:1 更改:0 警告:0
所以基本上没有任何反应,LOAD_FILE 返回 null

MYSQL 手册说该功能带有以下先决条件

  • 文件必须位于服务器主机上 -> 完成
  • 您必须指定文件的完整路径名 -> 完成
  • 您必须拥有 FILE 权限 -> 完成(如果我运行 SELECT user, file_priv FROM mysql.user;我的用户会得到 Y)
  • 该文件必须可供所有人阅读 -> 完成(我授予每个人对该文件和整个文件夹的完全访问权限)
  • 它的大小小于 max_allowed_pa​​cket 字节。 -> 完成(其大小为 63KB,max_allowed_pa​​cket=1073741824)
  • 如果将secure_file_priv 系统变量设置为非空目录名,则要加载的文件必须位于该目录中。 -> 完成(我直接选择这种方式)

有人知道怎么了?或者知道在哪里可以找到一些有用的错误消息或如何启用它们?

干杯 汤姆

【问题讨论】:

    标签: mysql binary blob


    【解决方案1】:

    在这里您必须将文件加载到单独的表中,然后您可以从该表中相应地更新记录

    【讨论】:

    • 谢谢。你能让我知道我需要将它插入到哪个表中吗?我发现其他帖子提到 select load_file(...);但这也没有返回任何内容,但 null
    • 您必须根据文件及其列创建表。
    • 我尝试了以下但没有成功。你能告诉我到底需要什么或者我在哪里可以找到相关信息。不幸的是,该手册似乎没有提供任何体面的信息。再次感谢! create table fileup( pic blob ); UPDATE fileup SET pic= LOAD_FILE("C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\samsung.png");
    • 告诉我你文件的列
    • 我的表格是这样的,缩略图是图像的列。再次感谢! create table if not exists product_category ( id int AUTO_INCREMENT PRIMARY KEY, label varchar(64) not null, parent int null, thumbnail blob null, active boolean not null, FOREIGN KEY fk_parent (parent) REFERENCES product_category (id) );
    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多