首页 新闻 搜索 专区 学院

mysql重启之后立马执行获取版本号,概率性失败,求解释

0
悬赏园豆:10 [待解决问题]

想写个shell脚本检测mysql重启后是否正常,如下:

systemctl restart mariadb.service

for((i=0;i<20;i++))
    do
        mysql -u$1 -p$2 -e "select version();"
        if [ $? -ne 0 ]; then
            sleep 1
        else
            return 0
        fi
    done

可以实际运行结果是:

(1)重启服务后,获取版本号偶尔会出错,且一旦出错,for循环要执行14次,也就是14s,才能获取版本号成功。多次试验,发现每次出错都是14s后才恢复正常。

获取版本号的出错信息:

Job for mariadb.service failed. See 'systemctl status mariadb.service' and 'journalctl -xn' for details.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

我的疑问:

(1)出错为什么是偶尔才会出现,而不是每次都会出现?

(2)为什么出错后,要14s mysql才恢复正常?

(3)mysql服务的重启机制是什么?

新手,求各路数据库大神指点一二

钱吉的主页 钱吉 | 初学一级 | 园豆:123
提问于:2017-06-30 15:24
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册