Есть ли способ запустить MySQL Instance до Apache Instance на Scalr?

Я использую Scalr для масштабирования сервера сайта.

На сервере Apache я установил Sakai и создал сценарий загрузки для компьютера с Linux.

Вопрос в том, как я могу убедиться, что MySQL Instance загружается и работает до загрузки сервера Apache, потому что, если сначала будет загружен сервер Apache, то соединение для запуска Sakai не будет установлено, и это вызовет всевозможные проблемы.

Как я могу обеспечить запуск экземпляра так, как он мне нужен? Я все еще новичок в Scalr, поэтому любая помощь будет оценена.

Спасибо

1 ответ

Если вы написали скрипт запуска Apache самостоятельно, вы можете включить проверку, запущен ли экземпляр базы данных.

Вы можете включить простой цикл ожидания:

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

Разумеется, вам нужно создать тест-пользователя и базу данных тестов в Mysql:

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

Просто поместите цикл while где-то в начало) часть вашего скрипта. Если ваша система представляет собой какую-то 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

Однако недостатком является то, что запуск Apache завершится неудачей, вместо того, чтобы ждать выполнения mylsqd.

Удачи, Алекс.

Другие вопросы по тегам