使用mysql加载数据infile相对路径错误

时间:2013-07-25 02:52:37

标签: c++ mysql c linux

LINUX MYSQL C API
MYSQL SERVER VERSION IS:5.1.9         
MYSQL CLIENT API VERSION:6.0.2

错误是

  

无法获取统计数据   '/usr/local/mysql/var/NetCenter_Cache/FileCahce_HttpDown.Dat'   (错误代码:2),内容:LOAD DATA INFILE   './NetCenter_Cache/FileCahce_HttpDown.Dat'INTO TABLE   data_httpdown_2013-07-24   (probe_idsrc_macdst_macsrc_ipdst_ipsrc_namedst_namedst_equip_type,{ {1}},dst_app_idip_versionip_tunnelsrc_portdst_portproto_typeproto_sub_type,{{1 }},operationlog_typelog_levelopstatusrule_idgroup_idrulekeyworddomain urlsummarycontentfile_name

此路径错误:

/usr/local/mysql/var/NetCenter_Cache/FileCahce_HttpDown.Dat

我正在使用相对路径

./NetCenter_Cache/FileCahce_HttpDown.Dat

路径指向

/usr/local/netaudit/NetCenter_Service/NetCenter_Release/NetCenter_Cache

为什么会改变?我使用绝对路径没有问题

1 个答案:

答案 0 :(得分:0)

那是因为LOAD DATA由服务器进程(非客户端)执行,而MySql守护进程的当前目录是

/usr/local/mysql/var/

因此,请使用数据文件的绝对路径,或者出于某种原因(我无法想象),您希望它是相对的,然后从

构建它
`/usr/local/mysql/var/`

而不是

`/usr/local/netaudit/NetCenter_Service/NetCenter_Release/`