我使用Scalr来扩展网站服务器。
在Apache服务器上,我已经安装了Sakai,并为Linux机器创建了一个启动脚本。
问题是,如何确保在Apache服务器启动之前启动并运行MySQL实例,因为如果Apache服务器先启动,那么运行Sakai的连接将失败,这将导致各种问题。
如何确保实例以我需要的方式启动?我仍然是Scalr的新手,所以如果有任何帮助,我将不胜感激。
谢谢
发布于 2011-09-26 19:36:04
如果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循环放在脚本的开始处)部分。如果您的系统是某种Redhat系统,您会注意到start-script /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。
祝你好运,亚历克斯。
https://stackoverflow.com/questions/5506821
复制相似问题