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

标签 c++ mysql c linux

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

错误是

Can't get stat of '/usr/local/mysql/var/NetCenter_Cache/FileCahce_HttpDown.Dat' (Errcode: 2),内容: LOAD DATA INFILE './NetCenter_Cache/FileCahce_HttpDown.Dat' INTO TABLE data_httpdown_2013-07-24 (probe_id,src_mac,dst_mac,src_ip,dst_ip,src_name,dst_name,dst_equip_type,dst_app_id,ip_version,ip_tunnel,src_port,dst_port,proto_type,proto_sub_type,operation,log_type,log_level,opstatus,rule_id,group_id,rulekeyword,domain,url,summary,content,file_name,log_time,str_time)

此路径错误:

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

我使用的是相对路径

./NetCenter_Cache/FileCahce_HttpDown.Dat

路径指向

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

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

最佳答案

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

/usr/local/mysql/var/

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

`/usr/local/mysql/var/`

而不是来自

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

关于c++ - 使用mysql加载数据infile相对路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17848210/

相关文章:

c++ - 两个相关的类层次结构——覆盖虚函数

c++ - pdb 文件,检查磁盘空间不足、路径无效或权限不足

php - 使用 pchart 创建的图表超时

php - 自定义统计的最佳实践

c - 这些重复的 GUI 元素从何而来?

c++ - vim折叠cpp和golang代码

c++ - cin.get() 和 cin.put() 的行为

php - 通过值排序php mysql

c - mkstemp() - 关闭描述符并再次重新打开它是否安全?

c - 为什么 sizeof ('\n' ) 和 sizeof(char) 不相等?