Shell 脚本 - mysql 准备就绪后如何运行脚本?

Shell 脚本 - mysql 准备就绪后如何运行脚本?

我有一个脚本(在文件中.sh),每次登录时都会运行一次。但我必须确保在.sh执行主脚本之前 mysql 服务已经在运行。
这是我的草稿:

function check_mysql(){
    // script for checking mysql
    return status
}
mysqlstatus = check_mysql()
while mysqlstatus == false {
    mysqlstatus = check_mysql()
}
// once mysqlstatus == true
// my main script
// my main script
// my main script
// my main script

如何用shell脚本编写上述草稿?

答案1

我终于找到答案了!:D

while !(mysqladmin ping)
do
   sleep 3
   echo "waiting for mysql ..."
done
echo "starting the main script"
#main script
#main script
#main script

答案2

谢谢您让我注意到 mysqladmin ping 命令!

这在处理 Docker 时将会有很大的帮助。

以下是我最终做的事情:

    # Returns true once mysql can connect.
    mysql_ready() {
        mysqladmin ping --host=database --user=root --password=MYSQL_ROOT_PASSWORD > /dev/null 2>&1
    }

    while !(mysql_ready)
    do
       sleep 3
       echo "waiting for mysql ..."
    done

相关内容