2016-08-28 5 views
1

私は次のコードでのMySQLデータベースに画像をロードしようとしている: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です。

+0

オペレーティングシステム、彼らなしでみては? – Jordon

+0

おそらくmyphoto.jpgファイルが古い画像です。 –

+0

@RedCricket、それが古い写真であることはどういう意味ですか? –

答えて

0

ファイルがmysqlにロードされているかどうかを確認してください。

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

これは、ユーザー権限の原因となる可能性があります。

sudo chown mysql:mysql /currentdir/file.blob 

私はまた、この問題は それはUbuntuの上で この/etc/init.d/apparmor stopを行い、問題を解決する可能性があります無効、ためapparmorのものであってもよいことに、Linux上のバグがあることを、hereをお読みください。

その他の考えられる理由

  1. 機能がNULL

  2. このquery

  3. を試してみてください権限

  4. ため

  5. チェックを返さないパスのチェックのMySQLのインスタンスがオンになっているされていますあなたのマシンは今?

もLinuxでは、あなたがLOAD_FILE(\'myphoto.jpg\')、スラッシュをバック置くために持っていけない、LOAD_FILE('myphoto.jpg')

関連する問題