docker Starting MySQL database server mysqld fail解决办法

今天有一个ubuntu+mysql的测试环境,在容器重启的时候mysql启动失败,导致docker启动失败。

首先查看docker日志

docker logs 8a16

发现有如下报错:

 * Stopping MySQL database server mysqld

   ...done.

 * Starting MySQL database server mysqld

   ...fail!

所以基本排查出事mysql服务没启动导致docker启动失败。因为我在启动脚本start.sh 添加了set -e命令

 

所以接下来就要查看一下mysql报什么错误。

启动docker的时候马上进入容器,否则等下失败容器就被关闭了。

docker start 8a16

docker exec -it 8a16 /bin/bash

查看mysql错误日志

 cat /var/log/mysql/error.log

发现多次测试启动失败的报错均是以下错误。

2018-12-18T09:58:41.325466Z 0 [ERROR] Another process with pid 439 is using unix socket file.

2018-12-18T09:58:41.325486Z 0 [ERROR] Unable to setup unix socket lock file.

2018-12-18T09:58:41.325528Z 0 [ERROR] Aborting

docker重启容器的时候,有时候会导致mysql异常关闭,然后在目录下生成一个mysql.sock.lock ,这个文件存在的原因导致mysql服务启动失败。

所以我在我的启动脚本start.sh增加了一行

rm -rf /var/run/mysqld/mysqld.sock.lock

再测试几次均能成功启动容器。到此问题已解决。

 

PS:之前也遇到mysql服务启动失败,然后再启动脚本增加了一行 choen -R mysql:mysql /var/lib/mysql /var/run/msqld

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值