2012-10-10 37 views
0

我有2个mysql服务器,其中一个设置了所有的mysql默认设置(端口,套接字等),第二个设置为端口3307,另一个套接字默认文件称为my-dev.cnf。运行第二个mysql服务器的init.d脚本失败

当我运行:

/usr/bin/mysqld_safe --defaults-file=/etc/my-dev.cnf 

服务器运行正常

我想要做的,是有一个脚本init.d中运行它。我复制了/etc/init.d/mysqld脚本,并改变了以下行:

exec="/usr/bin/mysqld_safe" 

到:

exec="/usr/bin/mysqld_safe --defaults-file=/etc/my-dev.cnf" 

但它一直未能上:

[ -x $exec ] || exit 5 

有:

/etc/init.d/mysql-dev:第63行:[:'/ usr/bin/mysqld_safe':二进制操作符rator预计

我该如何使它工作,因此它会使用我在/etc/my-dev.cnf中设置的默认值?

谢谢!

+0

是否使用'bash');

粘贴上http://pastie.org整个剧本,我会适应吗? –

+1

题外话题:对于那些最终在这里的人:复制init.d脚本将在RHEL上失败,除非您将'prog'环境变量设置为新鲜事物。在这种情况下,它将默认为“mysqld”,但需要更改为与原始脚本不同的内容,例如“mysqld-dev”。否则,它只是拒绝加载没有日志,错误或任何输出或反馈。这将在稍后传递给'daemon'命令,*必须*是唯一的,或者它认为服务已经在运行。没有乐趣去解决这个问题。 –

回答

1

问题是[ -x ]正在测试一个文件是否可执行,但该字符串不是可执行文件,而是您修改的命令行。

+0

我粘贴它:http://pastie.org/5032463。谢谢! – avital

+0

感谢您的帮助!正如你写的,我试图在错误的地方通过params。我编辑了文件中的一些变量,这些变量实际上是/ usr/bin/mysqld_safe的参数。再次感谢 – avital

+0

这应该工作:http://pastie.org/5034974 –

相关问题