㈠ linux环境kettle连接不了数据库资源库
首先感谢楼上两位大神的回答,再说一下问题的错误原因:
1、是因为这部署kettle的这台服务器上没有Mysql的客户端,所以根本无法访问到数据库,太疏忽了。。。
2、接下来换了一台装有MySQL客户端的服务器,进行部署。也是有问题,是由于我创建的资源库用户没有权限访问那台数据库(只开通了外网连接权限,未开通localhost权限)
---赋予权限(外网)
grant all on lisnew.* to ods_rep@"%" identified by 'ods_rep';
---赋予权限(内网/本地)
grant all privileges on . to ods_rep@localhost identified by 'ods_rep';
【注】:ods_rep用户为资源库用户,命令含义可在网络查询
㈡ kettle怎么连接mysql
运行kettle 后,会显示资源库链接窗口,如果没有资源库就创建一个。
kettle有两种资源库:一种是文件资源库,可以指定磁盘的某个文件件;一种是数据库资源库,在”数据库信息“窗口中,“新建” 指定数据库主机名,数据库名,用户名和密码就可以新建一个资源库,“创建或更新”可以将kettle必须的表自动创建到数据库中。
登录可以用 admin/admin
㈢ kettle 更新是更新源库还是目标库
开始实验:
1. 查询scott用户下emp表的数据
2. hyl用户下创建实验表(emptest)
3. 查询hyl用户下实验表(emptest)数据
4. 配置kettle
点击“没有资源库”启动,之后添加数据库连接即可,如下图:
新建一个转换,如下图:
点击“表输入”,拖动到面板内,如下图:
同理,在输出项目中,选择“插入/更新”添加到面板内,如下图:
点击“表输入”图标,然后按住“SHIFT”,连接到“插入/更新”图标,如下图所示:
双击“表输入”图标,点击“新建”按钮,进入到如下配置界面,参考图下设置,完成数据库连接配置并进行测试,如下图所示:
完成“表输入”中数据库连接设置后,接下来按同样的方法对“插入/更新”图标下的数据库连接进行配置,参考配置如下:
完成,“表输入”和“插入/更新”的数据库连接配置后,双击“表输入”,进入如下界面,选择数据库连接为“scott”,也就是我们之前的数据源数据库,点击“获取SQL查询语句”,如下图所示:
选择我们要抽取的表,如下所示:
按提示点击“是”即可,如下图:
编写sql脚本,这里我们为使实验简单,源端和目标端的表结构是相同的,如下图所示:
双击“插入/更新”图标,对目标端进行配置,选择连接的目标端数据库hyl,点击“浏览”获取目标表,如下图所示:
然后点击“获取字段”,你就可以看到源端和目标端的对应关系。点击“获取更新字段”你就可以看到我们要更新的字段都有哪些,如下图所示:
运行前,需要先保存kettle项目,进行保存,如下图:
万事俱备,只需运行了,如下图所示:
完成抽取后,会提示完成,如下图所示:
5. hyl用户验证实验表抽取数据情况
至此,我们完成了将scott的emp表数据抽取到hyl用户下的emptest表中,完成实验。