代码之家  ›  专栏  ›  技术社区  ›  Zhe Ma

如何将.mat文件插入mysql blob[duplicate]

  •  0
  • Zhe Ma  · 技术社区  · 6 年前

    我尝试将一个文件加载到MySQL blob(在Mac上)。

    我的问题是

    INSERT INTO MyTable VALUES('7', LOAD_FILE('Dev:MonDoc.odt'))
    

    不会出现错误,但文件未加载到blob中。

    0 回复  |  直到 6 年前
        1
  •  11
  •   markus    13 年前

    这个 manual

    加载文件(文件名)

    指定文件的完整路径名,并且您必须拥有该文件 允许的最大数据包字节数。如果secure\u file\u priv系统变量 如果设置为非空目录名,则要加载的文件必须是

    如果文件不存在或无法读取,因为 如果不满足上述条件,函数将返回NULL。

    控制以文本形式给出的文件名的解释

    mysql> UPDATE t
                SET blob_col=LOAD_FILE('/tmp/picture')
                WHERE id=1;
    

    从这里,我看到不止一件事,可能是错误的,在你的情况下。。。

    • 权限设置是否正确?
    • 函数返回什么?无效的?
    • 你试过手册上的问题了吗?
        2
  •  7
  •   rmv Luiggi Mendoza    11 年前

    我在Linux上也有同样的问题。。。

    select load_file('/tmp/data.blob');
    +-----------------------------+
    | load_file('/tmp/data.blob') |
    +-----------------------------+
    | NULL                        |
    +-----------------------------+
    

    sudo chown mysql:mysql /tmp/data.blob
    
        3
  •  4
  •   kbc    11 年前

    如果你在窗户里的话,在全路径上双倍逃逸。

        4
  •  3
  •   Uncle Iroh    10 年前

    使用时 select load_file('/path/to/theFile.txt'); 正在加载的文件 必须在运行sql实例的计算机上

    很长一段时间以来,我一直在使用MySQL workbench将文件加载到各种sql实例中,并且在使用诸如 LOAD DATA LOCAL INFILE 'C:/path/to/theFile.csv' INTO TABLE 无论实际的sql实例在哪里运行,这些操作都可以轻松地从本地硬盘上抓取文件并将其处理到表中。然而 load_file 至少对我来说,命令的行为似乎不一样(可能存在一个我不知道的本地\u load \u file()命令)。MySQL似乎只允许它从运行sql实例的本地系统中查找文件。

    所以,如果你像我一样,你不明白为什么load\u file总是返回NULL,不要担心…将文件上载到sql server实例,然后从查询浏览器使用该路径,一切都会好起来。

        5
  •  0
  •   William Choy    9 年前

    谢谢。

    运行mysql的用户需要拥有该文件。我的错误是,我认为它只需要能够读取或执行文件。