错误创建oozie数据库模式

问题描述:

我想在RHEL5上使用RPM设置oozie(cdh4)。当我使用sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run运行命令来设置mysql数据库模式时,它给了我一个错误,指出“没有这样的文件或目录”。您可以查看相同的here的日志。错误创建oozie数据库模式

虽然如果我尝试运行命令以使用sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -sqlfile oozie-create.sql创建脚本,但它给了我一个错误,指出“无法连接到数据库”。您可以查看相同的here的日志。

我在关注cdh4 installation site for oozie

请帮我弄清楚可能的错误。提前致谢。

+0

创建是否所有的临时目录的存在('在/ var/lib中/ oozie'),并执行Oozie的用户有写入/执行该文件夹的权限? – 2013-05-10 22:00:55

+0

嗨@Chris!谢谢你试图帮助我。 [Here](http://pastebin.com/0PKtHJ7n)是我提到的目录中的文件列表。您提到的目录及其内容属于oozie用户和组,我试图使用同一用户运行它,如上面的指南中所述。 – Harman 2013-05-13 04:59:27

看起来你尝试创建init sql文件时遇到了某种权限问题。其中,该错误发出了Oozie的CDH4的代码是this

String sqlFile = (commandLine.hasOption(SQL_FILE_OPT)) 
     ? commandLine.getOptionValue(SQL_FILE_OPT) 
     : File.createTempFile("ooziedb-", ".sql").getAbsolutePath(); 

所以,你可以尝试通过在SQL_FILE_OPT并命名,你知道存在一个路径,并且用户可以Oozie的写太多。你已经完成了你的第二个命令行,但是我完全限定了sql文件的路径,并把它放在你知道可以写入的oozie的地方(/ tmp,实际上它应该是File.createTempFile( ..)创建文件)。

sudo -u oozie touch /tmp/oozie-create.sql 
sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create \ 
    -sqlfile /tmp/oozie-create.sql 
+0

Hi @Chris!我也尝试过这种方式,但仍然没有运气。我以某种方式相信我的java家有一些问题,但是当我做出回应时,它指向了正确的道路。有什么办法可以通过将它作为一个论据来明确地覆盖路径吗? – Harman 2013-05-13 13:16:32

在我的情况下,我的db oozie是空的,所以我删除了数据库,并重新创建它! $ mysql -u root -p 输入密码:******

mysql> create database oozie; Query OK,1 row affected(0.03 sec)

mysql>将oozie。*的所有权限授予'oozie'@'localhost'由'oozie'标识; Query OK,0 rows affected(0.03 sec)

mysql>将oozie。*的所有权限授予'oozie'所标识的'oozie'@'%'; 查询OK,0行的影响(0.03秒)

的MySQL>出口 再见

然后

验证DB连接 DONE 检查DB模式不存在 DONE 检查OOZIE_SYS表不存在 完成 创建SQL模式 完成 创建OOZIE_SYS表 完成 设置MySQL MEDIUMTEXT标志 DONE

Oozie的DB已经为Oozie的版本 '3.3.2-cdh4.7.0'