若数据无法写入目标数据库,需依次检查数据库连接与字段映射:一、创建utf8mb4字符集的数据库及含id/title/content/url/pub_time字段的数据表;二、在火车头【自定义发布】中准确填写MySQL连接参数并测试成功;三、将采集变量{title}{content}{url}等绑定至对应表字段,pub_time可绑定时间函数或设为NOW();四、复杂场景可用.dbm模块编写SQL实现多表插入与ID传递;五、权限受限时可先导出CSV再批量导入,注意BOM头与字符集匹配。

如果您已配置好采集规则,但数据无法写入目标数据库,则可能是数据库连接未建立或字段映射不匹配。以下是完成火车头采集器数据库发布设置的具体操作步骤:
一、创建并确认目标数据库与数据表
该步骤确保火车头有可写入的结构化存储空间,且表字段与采集内容逻辑一致。
1、使用phpMyAdmin、Navicat或命令行登录数据库服务器。
2、新建数据库,例如命名为trainhead_db,字符集选择utf8mb4,排序规则为utf8mb4_unicode_ci。
3、在该库中创建数据表,如articles,至少包含id(INT自增主键)、title(VARCHAR 255)、content(TEXT)、url(VARCHAR 500)、pub_time(DATETIME)等字段。
4、验证表结构可被正常读写,执行INSERT INTO articles (title) VALUES ('测试');确认无权限或语法错误。
二、在火车头中配置数据库连接参数
此步骤通过“自定义发布”模块建立与数据库的通信通道,需准确填写网络与认证信息。
1、打开火车头采集器,进入【发布管理】→【添加发布方案】。
2、发布类型选择【自定义发布】,点击【新建数据库连接】按钮。
3、填写连接信息:主机地址填localhost或远程IP;端口默认3306(MySQL);数据库名填trainhead_db;用户名和密码为数据库有效账户凭证。
4、数据库类型选择【MySQL】,字符编码选择【utf8mb4】(必须与数据库实际字符集一致)。
5、点击【测试连接】,显示“连接成功”后点击【保存】。
三、绑定采集字段与数据库表列
该步骤将采集规则中提取的变量(如{title}、{content})映射至对应数据库字段,确保数据归位准确。
1、在刚创建的发布方案中,点击【字段设置】,系统自动加载articles表全部字段。
2、在“数据库字段”列中,逐项选择:title → 绑定变量{title};content → 绑定{content};url → 绑定{url}。
3、对pub_time字段,可绑定{datetime:Y-m-d H:i:s}系统函数,或设为默认值NOW()。
4、勾选【启用发布】,点击【保存字段映射】。
四、使用数据库发布模块(.dbm)方式入库
该方式适用于复杂场景,如多表关联插入、主从ID传递、条件判断写入等,需手动编写SQL语句。
1、进入【工具】→【数据库发布模块制作工具】,点击【新建】。
2、数据库类型选择【MySQL】,输入目标数据库连接信息并【测试连接】。
3、在SQL编辑区编写插入语句,例如:INSERT INTO articles (title,content,url,pub_time) VALUES ('{title}','{content}','{url}',NOW());
4、若需双表写入(如标题存newstitle、正文存newscontent),则使用两条INSERT,并用[文章编号:newstitle]获取首表自增ID传入第二条语句。
5、点击【保存模块】,命名如articles_full_insert.dbm,后缀必须为.dbm。
6、返回【发布管理】,选择该.dbm模块,填写数据库连接信息,点击【测试入库】验证SQL执行效果。
五、启用本地CSV导出再批量导入数据库
该方式规避实时连接风险,适合高并发采集或数据库权限受限环境,以文件为中转载体。
1、在发布方案中关闭所有数据库类发布方式,取消勾选已启用的自定义发布或.dbm方案。
2、启用【本地文件发布】,格式选择【CSV】,路径指定为D:\trainhead\output.csv,字段分隔符设为英文逗号,文本限定符为双引号。
3、在字段设置中,将{title}、{content}、{url}、{datetime:Y-m-d}依次填入CSV列配置。
4、运行一次采集任务,检查生成的CSV文件是否含BOM头、字段数量一致、中文不乱码。
5、登录数据库管理工具,选择目标表,使用【导入向导】加载该CSV文件;或执行LOAD DATA INFILE命令,注意指定CHARACTER SET utf8mb4。










