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 の起動に失敗するという欠点があります。
がんばれ、アレックス。