【BUG】Docker启动MySQL报错

这篇具有很好参考价值的文章主要介绍了【BUG】Docker启动MySQL报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

个人主页:金鳞踏雨

个人简介:大家好,我是金鳞,一个初出茅庐的Java小白

目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作

我的博客:这里是CSDN,是我学习技术,总结知识的地方。希望和各位大佬交流,共同进步 ~

问题描述

这一段时间,学习了黑马的一个的SpringCloud项目——学成在线。我将项目中需要的组件都放在了我的一台虚拟机上,用docker的方式。

但是发现,每次启动的时候MySQL容器经常失败,报错如下:

Error response from daemon: driver failed programming external connectivity on endpoint mysql (868f20f1e4165e72ae2275dec7bee377572098cfcff3177b413d9f32a4b4928e): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use
Error: failed to start containers: 0c4e5bdc6f7e

大概是端口占用......

解决办法

实际上解决这个问题也很容易

一、暴力

找到占用3306端口的进程,然后kill即可

我们先使用命令,找到所有进程的端口

netstat -tanlp

【BUG】Docker启动MySQL报错,BUG大全解,bug,docker,mysql,mysql启动报错,端口

然后直接使用 kill 命令

# 1837 -- 进程号
kill 1837

再重新启动mysql即可

# 0c4e5bdc6f7e -- 通过docker ps -a 查看到的容器的ID
docker start 0c4e5bdc6f7e

【BUG】Docker启动MySQL报错,BUG大全解,bug,docker,mysql,mysql启动报错,端口

但是,这样子做,对于我来说还是有点治标不治本! 因为如果这样子处理的话,相当于每次启动vm的时候,都要重复一遍上述的工作。

因为,我的docker没有自启动,而这个 mariadb(我也不知道是怎么来的~~~可能是之前的机子有禅道,禅道用的数据库就是mariadb)在启动VM的时候就启动了,3306端口先被占用了。

二、卸载mariadb

由于我的端口占用是禅道引起的,所以我直接卸载禅道即可!

# 停止服务
/opt/zbox/zbox stop

cd /opt

rm -rf /zbox

停止服务,删除zbox目录即可卸载。

三、重新指定这个MySQL的端口

可以把之前的mysql容器删除了,再重新创建一个新的,如下: 

docker run --name mysql \
  --restart=always \
  -e MYSQL_ROOT_PASSWORD=888888 \
  -v /home/lcxz8686/DockerContainerProperties/mysql/data:/var/lib/mysql \
  -v /home/lcxz8686/DockerContainerProperties/mysql/conf:/etc/mysql/conf.d \
  -p 3309:3306 \
  -d \
  mysql:8.0.30

如果不想删除,可以这样子做:

先进入容器内部

docker exec -it mysql /bin/bash

将容器里面的 /etc/mysql/my.cnf  文件复制出来修改(原因是docker容器内部大多数不支持vim命令,下载安装比较麻烦!!!)如果里面没有my.cnf就在 CentOS 上面创建一个,编写好,再怼回去。

# 容器复制命令 -- 需要退出容器
docker cp mysql:/etc/mysql/my.cnf /etc/mysql 

修改完了再cp回去

docker cp my.cnf mysql:/etc/mysql/ 

再重启该容器即可!!! 

文章到这里就结束了,如果有什么疑问的地方,可以在评论区指出~

希望能和大佬们一起努力,诸君顶峰相见

再次感谢各位小伙伴儿们的支持!!!文章来源地址https://www.toymoban.com/news/detail-659134.html

到了这里,关于【BUG】Docker启动MySQL报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker启动mysql报错:Error invoking remote method ‘docker-start-container‘: Error: (HTTP code 500) server

    1、问题 docker启动mysql报错:Error invoking remote method \\\'docker-start-container\\\': Error: (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3306 - 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 2、解决办法 这是MySQL镜像安装中出现

    2024年02月16日
    浏览(37)
  • docker启动mysql容器失败端口被占用Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already

    目录 前言 启动失败:端口被占用 解决办法: 方法一:杀死进程 方法二:修改端口映射,宿主机不使用3306  我的mysql镜像版本:8.0.31 我的启动命令为:  看错误信息得知该服务器的3306端口已经被占用了。一看果然是,我宿主机中的mysql正启动着,端口也是3306,不被占用才怪

    2024年02月12日
    浏览(34)
  • docker-compose重新启动Mysql报错changing ownership of ‘/var/lib/mysql/mysql.sock‘: No such file or direct

    最近在使用 docker-compose 编排整合一个项目(springboot+mysql)的时候,首次启动后重新再启动的时候,mysql 容器启动失败,通过 docker logs 命令查看 mysql 容器的启动日志如下: docker-compose.yml 文件完整内容如下: my.cnf 文件完整内容如下: 从报错信息上来看,应该是 mysql 启动的时

    2024年02月15日
    浏览(26)
  • docker修改mysql默认端口

    安装mysql5.7 1.指定版本号: 2.镜像拉取完成后,用该镜像创建mysql实例,使用下面的命令来创建 -p:指定指定容器与宿主机之间映射的端口 -v:这些都是宿主机与容器文件的映射地址 -e:mysql的密码是root 3.在连接服务器工具上面找到这个地方并创建my.cnf文件。 地址是这个 /mydata/mysql

    2023年04月24日
    浏览(70)
  • 记录Bug:idea连接数据库报错DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045]

    报错信息: DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045] Access denied for user \\\'root\\\'@\\\'localhost\\\' (using password: YES). 报错原因: Mysql数据库用户的密码不正确。 解决方法: 修改数据库密码。

    2024年02月03日
    浏览(46)
  • 使用docker的常见bug

    BUG1:磁盘被占满导致docker无法使用 docker ps 【查看docker能否正常使用】 正常的话会打印下图信息:  不正常的话打印如下图信息:  journalctl -u docker 【查看docker无法正常使用的原因】,本次测试中遇到下图bug,意思是/var/lib/docker被占满,无法新建/var/lib/docker/tmp,所以导致doc

    2024年02月15日
    浏览(24)
  • docker 配置 mysql 指定端口映射和存储地址

    要配置Docker中的MySQL容器以指定端口映射和存储地址,可以按照以下步骤进行操作: 从Docker Hub上下载MySQL镜像,可以使用以下命令: 创建一个新的MySQL容器并指定端口映射和存储地址。在这个例子中,我们将MySQL端口映射到主机上的3306端口,并将MySQL数据存储在主机上的/my/

    2024年02月13日
    浏览(29)
  • BUG:pm2启动verdaccio报错:Invalid or unexpected toke

    pm2 state verdaccio 问题描述: 报错翻译:数据格式错误 导致我呢提原因,没有找到运行文件, 发现问题:因为命令默认查找 verdaccio 是去系统盘查找。 1:找到 verdaccio 全局的安装包 2:找到pm2需要执行文件路径 修改pm2命令 启动成功: 查看PM2.列表 访问浏览器 问题解决啦

    2024年02月15日
    浏览(73)
  • Docker - Docker安装MySql并启动

    因为项目需要数据库存储数据,但是远程服务器上的mysql已经是上一波老铁安装部署的了,我不知道账户和密码,但是又需要快速部署一下mysql服务,这个时候便是docker发挥作用的关键时刻了! docker安装不是我们的重点,这里就简单带过一下,如有其他意外问题可私信或直接

    2024年02月10日
    浏览(32)
  • Docker - Docker启动的MySql修改密码

    基于上篇文章《Docker - Docker安装MySql并启动》,在Docker中启动了mysql服务,但是密码设置成了123456,想起来学生时代数据库被盗走,然后邮箱收到被勒索BTC的场景还历历在目😭,密码不能再设置这么简单了啊! 使用以下命令创建了一个MySQL容器,并设置了MySQL的root密码为1234

    2024年02月04日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包