Есть ли способ запустить 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.
Удачи, Алекс.