linux上mysql服务启动失败:[ERROR] Failed to create a socket for IPv4 ‘0.0.0.0‘: errno: 13

分析

ubuntu_20服务器上,基于docker创建了的mysql容器,一直能稳定运行。当时当我在linux使用apt直接安装apache2和mysql后,再次启动mysql容器就会失败。
遇到问题,我们先看下容器的报错日志,执行查看日志命令:docker logs -f -t --tail 10 mysql01
日志内容如下:
在这里插入图片描述
可以看到,容器在创建时就报错。百度了一圈,原因都指向:IP被暂用,端口被占用。
那么猜测应该就是之前linux上安装的apache2或mysql导致网络端口被占用导致的,那么只需要停止这两个服务就行。

一、linux下停止apache2+mysql

1、停止服务

sudo systemctl stop apache2
sudo systemctl stop mysql

#或者如果您使用的是旧版本的 Ubuntu,可能会使用 service 命令:
#sudo service mysql stop
#sudo service apache2 stop

到这里,我们再次启动docker中的mysql容器,应该就可以启动:

docker start mysql01

执行后,事与愿违,查看容器日志,还是报之前一样的错误。

2、删除包

如果上面停止服务后还是不能正常启动mysql容器。那么就直接清除所有的apt包

# 1、首先查看mysql相关的包有哪些?
apt list --installed | grep mysql
# 2、删除所有的mysql包
apt remove --purge mysql-server mysql-client mysql-common

# 3、首先查看apache2相关的包有哪些?
apt list --installed | grep apache2
# 4、删除所有的apache2包
apt remove --purge apache2-bin apache2-data apache2-utils

删除完成后,可以再次查看包,看看是否还有遗留,正常应该是没有剩余包了:

apt list --installed|grep mysql
apt list --installed|grep apache2

在这里插入图片描述

3、启动mysql容器

执行完1、2两个步骤后,再次启动mysql容器时,已经正常启动。

docker start mysql01 #【mysql01】是容器名,这里也可以写容器id
docker logs -f -t --tail 10 mysql01	# 查看容器执行日志

这时查看容器日志,可以看到已经启动正常:
在这里插入图片描述

二、window下停止apache2+mysql

打开服务,然后找到之前占用端口的mysql服务,并停止。
在这里插入图片描述
然后再启动我们需要启动的mysql服务。
在这里插入图片描述

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT飞牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值