2012-10-10 35 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 –

相關問題