首页 > 解决方案 > 如何将图像添加到工作台上的数据库表中?

问题描述

我正在尝试在数据库表中插入图像,但每次都会出错:

列图像不能为空

而图像列的数据类型不为空,您可以清楚地看到。

我怎么解决这个问题?

在 MySQL Workbench 中执行:

在此处输入图像描述

标签: mysqlmysql-workbenchsql-insertmysql-loadfile

解决方案


MySQL LOAD_FILE 函数是要成功执行的几个条件。

  • 您尝试加载的文件必须存在于运行 MySQL 服务器的同一主机中。例如,如果您的 MySQL 服务器安装在 example.com 上,则文件必须仅存在于 example.com 上。
  • 必须指定文件的完整路径名。因此,如果您的文件位于用户的主目录中,假设用户名 w3r,则必须指定“/home/w3r/somefile.txt”
  • 执行命令的用户必须具有 FILE 权限。您可以通过以下“GRANT FILE on dbname.* TO user@localhost”向用户授予 FILE 权限。
  • 有问题的文件必须所有人都可以阅读。如果您尝试加载用户主目录层次结构中不存在的文件,请确保您对该文件具有读取权限。
  • MySQL 服务器有一个 max_allowed_pa​​cket 变量。有问题的文件不得超过该变量中指定的值。您可以使用 'show variables like '%max_allowed_pa​​cket%';' 来检查 max_allowed_pa​​cket 的值;您必须具有 MySQL root 权限才能执行此命令。您在 MySQL 配置文件中更改 max_allowed_pa​​cket 的值。打开您的 my.ini 或 my.cnf 文件,找到行 max_allowed_pa​​cket=some_value 并将值更改为您想要的值,例如,如果您想将 valle 设置为 50MB,则写入 50MB。
  • MySQL 有一个 secure_file_priv 变量。如果该变量的值设置为非空目录名,则要加载的文件必须位于该目录中。您可以找到 secure_file_priv 变量及其值,并可以在您的 MySQL 配置文件中更改它。

推荐阅读