日期:2014-05-16  浏览次数:21968 次

请教关于load_file的问题
初学Mysql,希望各位多多指教

我的表有三列
+------------+----------------------+------------+
| LogDate | LogName | LogContent |
+------------+----------------------+------------+
| 2011-11-30 | SYSLOG.G0272V00 | NULL |
+------------+----------------------+------------+

现在要在第三列中导入一个txt文件的内容:

update SystermLog set LogContent=load_file('e:\test\SYSLOG.G0272V00.txt') where logdate='2011-11-30';

返回:
query OK, 0 rows affecter<0,00 sec>
Rows matched:1 Changed:0 Warnings:0

然后表里无任何变化,为什么内容加载不进去呢,txt内容大概1M多,已经修改max_allowed_packet为100M

------解决方案--------------------
load_file(文件全路径)

读取文件并将这一文件按照字符串的格式返回。 文件的位置必须在服务器上,你必须为文件制定路径全名,而且你还必须拥有FILE 特许权。文件必须可读取,文件容量必须小于 max_allowed_packet字节。 

若文件不存在,或因不满足上述条件而不能被读取, 则函数返回值为 NULL。

1. 你的blob字段, 超过1M,字段类型就不能用BLOB了,至少要用MEDIUMBLOB或者LONGBLOB.
2. 看看文件路径是否有误。\改成/ 试试。