【bug】服务器上docker启动mysql

使用docker启动mysql服务时,突然报如下的错误:

02b082f9a42c28f1eae2f548780cba4d561b54f455e475e9cebdabc68a38c1f4
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql (199ba8cc23e556d6716b5b62975f07be34e5d1dea3197c7eaca730754c6a5a5d): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use.
大致意思为端口被占用着。

出现问题时在网上搜索了很多相关问题,试了好几种方法都解决不了问题,大多数回答都是说重启docker即可,但是反复重启,折腾来折腾去仍不见问题解决。
最终还是通过查看占用端口、杀死进程方案得以解决问题。

1.查看当前占用端口命令

netstat -tanlp

2.杀死进程(注意不是杀死端口,而是pid的端口),如下图参考:
在这里插入图片描述
又报错
docker: Error response from daemon: Conflict. The container name “/mysql” is already in use by container “02b082f9a42c28f1eae2f548780cba4d561b54f455e475e9cebdabc68a38c1f4”. You have to remove (or rename) that container to be able to reuse that name.
See ‘docker run --help’.

原因:之前运行docker容器还没有退出,导致出现容器重名情况

docker ps -a

解决办法:删除重名的容器

docker rm (该containerID)

如果想要再次使用,使用docker restart 镜像名则可以重启该container容器。
在这里插入图片描述

解决linux mysql命令 bash: mysql: command not found 的方法

错误:
在这里插入图片描述
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

ln -s /usr/local/mysql/bin/mysql /usr/bin

以下是补充:

linux下,在mysql正常运行的情况下,输入mysql提示:

mysql command not found

遇上-bash: mysql: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:

把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下:

cd /usr/local/bin
ln -fs /MYSQLPATH/bin/mysql mysql

还有其它常用命令mysqladmin、mysqldump等不可用时候都可按用此方法解决。
注:其中MYSQLPATH是mysql的实际安装路径
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_58058653/article/details/121453295