我正在尝试使用以下代码将图片加载到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执行这些命令时不会出错,但实际上不会将图片放入数据库中。可能会出什么问题,我该如何修复它?
操作系统为linux。
发布于 2016-08-29 07:31:09
检查文件是否已加载到mysql中。
select load_file('/currentdir/file.blob')
+-----------------------------+
| load_file('currentdir/file.blob') |
+-----------------------------+
| NULL |
+-----------------------------+这可能是由于用户权限的原因。
sudo chown mysql:mysql /currentdir/file.blob我也读过here,说linux上有个bug,这个问题可能是因为apparmor,禁用它可能会解决这个问题,在ubuntu上执行这个/etc/init.d/apparmor stop。
其他可能的原因!!
而且在linux中你也不需要放反斜杠,LOAD_FILE(\'myphoto.jpg\'),尝试不使用它们,LOAD_FILE('myphoto.jpg')
https://stackoverflow.com/questions/39196571
复制相似问题