MySql无法在同一目录中找到文件?

时间:2016-08-28 23:04:41

标签: python mysql file

我尝试使用以下代码将图片加载到mysql数据库中:

cursor, db = get_db()
cursor.execute("UPDATE People SET photo = LOAD_FILE(\'myphoto.jpg\')")
cursor.close()
db.commit()
db.close()

我已经能够通过用更简单的东西替换LOAD_FILE短语来将照片设置为其他值,所以我知道问题源于加载图片。同时,myphoto.jpg位于运行代码的目录中。 MySql在没有抱怨的情况下执行这些命令,但实际上并没有将图片放在db中。可能出现什么问题,我该如何解决?

操作系统是linux。

1 个答案:

答案 0 :(得分:0)

检查文件是否已加载到mysql中。

select load_file('/currentdir/file.blob')
+-----------------------------+
| load_file('currentdir/file.blob') |
+-----------------------------+
| NULL                        |
+-----------------------------+

这可能是因为用户权限。

sudo chown mysql:mysql /currentdir/file.blob
  

我还读过here,linux上有bug,这个问题可以   因为apparmor,禁用它可能会解决问题   这个/etc/init.d/apparmor stop在ubuntu上。

其他可能的原因!!

  1. 检查路径

  2. 检查权限

  3. 函数是否返回NULL

  4. 试试这个query

  5. 你的机器上是否有mysql实例?

  6. 而且在Linux中你不必放回斜杠,LOAD_FILE(\'myphoto.jpg\'),试试没有它们,LOAD_FILE('myphoto.jpg')