【问题标题】:Is there a way to start up MySQL Instance before Apache Instance on Scalr?有没有办法在 Apache Instance on Scale 之前启动 MySQL Instance?
【发布时间】:2011-03-31 21:57:13
【问题描述】:

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

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

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

如何确保实例以我需要的方式启动?我还是 Scalr 的新手,因此我们将不胜感激。

谢谢

【问题讨论】:

    标签: mysql apache tomcat5.5 scalr sakai


    【解决方案1】:

    如果您自己编写了 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 系统,您会注意到启动脚本 /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。

    祝你好运, 亚历克斯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 2020-06-19
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多