Php 0秒)

Php 0秒),php,mysql,mysql-loadfile,Php,Mysql,Mysql Loadfile,回到用户会话中,我仍然无法加载该文件 mysql> select hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')); +-------------------------------------------------------------------------------------------------------------+ | hex(LOAD_FILE

回到用户会话中,我仍然无法加载该文件

mysql> select hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')); +-------------------------------------------------------------------------------------------------------------+ | hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')) | +-------------------------------------------------------------------------------------------------------------+ | NULL | +-------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>选择hex(加载文件('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg'); +-------------------------------------------------------------------------------------------------------------+ |十六进制(加载文件('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg'))| +-------------------------------------------------------------------------------------------------------------+ |空的| +-------------------------------------------------------------------------------------------------------------+ 一行一组(0.00秒) …但如果我注销并重新登录:

mysql> exit Bye 16:40:14 (getImages) ~/code/projectName/doc/filesForTesting/images$ mysql -u eventCal -p eventCal Enter password: mysql> select hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')); +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')) +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE10407687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D304D7043656869487 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mysql>退出 拜伊 16:40:14(getImages)~/code/projectName/doc/filesForTesting/images$mysql-u eventCal-p eventCal 输入密码: mysql>选择hex(加载文件('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg'); +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |十六进制(加载文件('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')) +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |FFD8FFE1000184578696600004942A0000800000000000000000000000000FFEC00114475636B790004000000500000FFE10407687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E3302F003C3F787061636B657420626567696E3D22EFBBF222069643D22354D304D70436568487 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
请显示用于运行查询的完整代码这是完整代码(测试代码),您是否已授予用户权限?授予文件。对我来说;另外,我听说LOAD_文件是一个仅限Windows的函数,mot Linux:只获得“使用”权限(共享主机),而解决方法很难看,我发现您不必将图像放在/var/lib/mysql/all_images中。我使用了/var/lib/mysql/foo_图像,效果很好。多亏了这一点,我让我的数据库模式安装程序(一个Debian包)创建/var/lib/mysql/foo_映像,用映像文件填充它,然后在我的POSTNST中运行充满LOAD_文件的SQL,然后删除/var/lib/mysql/foo_映像。最终的结果是完全干净的,破坏MySQL安装的可能性最小,中间阶段也不太糟糕。我很满意。其他目录失败的原因是apparmor块。这个技巧在Ubuntu14.04 LTS上也适用于我。也就是说,将您的文件放在
/var/lib/mysql/
目录下,然后使用相对的文件名,例如,
LOAD_file('foobar.txt')
将加载
/var/lib/mysql/foobar.txt
。此外,在ubuntu linux和其他地方,apparmor可能会干扰。 16:38:09 (getImages) ~/code/projectName/doc/filesForTesting/images$ mysql -u eventCal -p eventCal Enter password: mysql> show grants; +-----------------------------------------------------------------------------------------------------------------+ | Grants for eventCal@localhost | +-----------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'eventCal'@'localhost' IDENTIFIED BY PASSWORD '*xxxxx' | | GRANT ALL PRIVILEGES ON `tmp`.* TO 'eventCal'@'localhost' | | GRANT ALL PRIVILEGES ON `eventCalTesting`.* TO 'eventCal'@'localhost' | | GRANT ALL PRIVILEGES ON `eventCal`.* TO 'eventCal'@'localhost' | | GRANT ALL PRIVILEGES ON `eventCal_categoryMigration`.* TO 'eventCal'@'localhost' | +-----------------------------------------------------------------------------------------------------------------+ 5 rows in set (0.00 sec) mysql> select hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')); +-------------------------------------------------------------------------------------------------------------+ | hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')) | +-------------------------------------------------------------------------------------------------------------+ | NULL | +-------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> grant file ON *.* to eventCal@localhost; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> select hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')); +-------------------------------------------------------------------------------------------------------------+ | hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')) | +-------------------------------------------------------------------------------------------------------------+ | NULL | +-------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> exit Bye 16:40:14 (getImages) ~/code/projectName/doc/filesForTesting/images$ mysql -u eventCal -p eventCal Enter password: mysql> select hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')); +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | hex(LOAD_FILE('/home/jlam/code/projectName/doc/filesForTesting/images/imageTest01.jpg')) +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE10407687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D304D7043656869487 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------