首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在Scalr上的Apache实例之前启动MySQL实例?

有没有办法在Scalr上的Apache实例之前启动MySQL实例?
EN

Stack Overflow用户
提问于 2011-04-01 05:57:14
回答 1查看 2.3K关注 0票数 2

我使用Scalr来扩展网站服务器。

在Apache服务器上,我已经安装了Sakai,并为Linux机器创建了一个启动脚本。

问题是,如何确保在Apache服务器启动之前启动并运行MySQL实例,因为如果Apache服务器先启动,那么运行Sakai的连接将失败,这将导致各种问题。

如何确保实例以我需要的方式启动?我仍然是Scalr的新手,所以如果有任何帮助,我将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-09-26 19:36:04

如果Apache启动脚本是您自己编写的,那么可以检查数据库实例是否已经在运行。

您可以包含一个简单的等待循环:

代码语言:javascript
复制
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:

代码语言:javascript
复制
CREATE DATABASE testdb;
GRANT USAGE,SELECT ON testdb.* TO 'testuser'@'localhost' IDENTIFIED BY 'testpassword';
FLUSH PRIVILEGES;

只需将while循环放在脚本的开始处)部分。如果您的系统是某种Redhat系统,您会注意到start-script /etc/init.d/httpd有这样一行:

代码语言:javascript
复制
Required-Start: $local_fs $remote_fs $network $named

如果您将$mysqld添加到该行,Apache将在启动之前坚持运行mysqld:

代码语言:javascript
复制
Required-Start: $local_fs $remote_fs $network $named $mysqld

但是,缺点是Apache启动将失败,而不是等待运行mylsqd。

祝你好运,亚历克斯。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5506821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档