Есть ли способ запустить MySQL Instance до Apache Instance на Scalr? - PullRequest
2 голосов
/ 01 апреля 2011

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

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

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

Спасибо

1 Ответ

1 голос
/ 26 сентября 2011

Если вы написали скрипт запуска 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.

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

...