2

WebサイトサーバーのスケーリングにScalrを使用しています。

ApacheサーバーにSakaiをインストールし、Linuxマシンの起動スクリプトを作成しました。

問題は、Apacheサーバーを起動する前にMySQLインスタンスを起動して実行する方法です。これは、Apacheサーバーを最初に起動すると、Sakaiを実行するための接続が失敗し、さまざまな問題が発生するためです。

インスタンスを開始するのに必要な方法でインスタンスを確実に開始するにはどうすればよいですか?私はまだScalrを初めて使用するので、助けていただければ幸いです。

ありがとう

4

1 に答える 1

1

Apache 起動スクリプトを自分で作成した場合は、データベース インスタンスが既に実行されているかどうかのチェックを含めることができます。

単純な待機ループを含めることができます。

MYSQL_OK=1
while ["$MYSQL_OK" -ne 0] ; do
   echo "SELECT version();" | mysql -utestuser -ptestpassword testdb
   MYSQL_OK=$?
   sleep 5
done

明らかに、Mysql でいくつかの testuser と test-database を作成する必要があります。

CREATE DATABASE testdb;
GRANT USAGE,SELECT ON testdb.* TO 'testuser'@'localhost' IDENTIFIED BY 'testpassword';
FLUSH PRIVILEGES;

while ループをスクリプトの start) 部分のどこかに置くだけです。システムが何らかの Redhat システムである場合、開始スクリプト /etc/init.d/httpd に次のような行があることに気付くでしょう。

Required-Start: $local_fs $remote_fs $network $named

その行に $mysqld を追加すると、Apache は起動前に実行中の mysqld を要求します。

Required-Start: $local_fs $remote_fs $network $named $mysqld

ただし、mylsqd の実行を待たずに Apache の起動に失敗するという欠点があります。

がんばれ、アレックス。

于 2011-09-26T11:36:03.957 に答える