想写个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服务的重启机制是什么?
新手,求各路数据库大神指点一二