当前位置: 首页 > news >正文

【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

然后直接使用 kill 命令

# 1837 -- 进程号
kill 1837

再重新启动mysql即可

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

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

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

二、卸载mariadb

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

# 停止服务
/opt/zbox/zbox stopcd /optrm -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/ 

再重启该容器即可!!! 

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

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

再次感谢各位小伙伴儿们的支持!!!

http://www.lryc.cn/news/136274.html

相关文章:

  • Spring Boot通过企业邮箱发件被Gmail退回的解决方法
  • Windows使用MobaXterm远程访问ubuntu20.04桌面
  • C++注释风格
  • Linux 编译内核模块出现--Unknown symbol mcount
  • Pywin32 Cookbook by Eric
  • indexDB入门到精通
  • Ubuntu 20.04配置静态ip
  • Tushare入门小册
  • <c++开发>通信工具 -之-SOME/IP移植部署 第一篇文章
  • 权威的软件测试服务供应商分享,怎么获得软件安全检测报告?
  • 管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——假设——第二节——搭桥假设
  • 百度云BOS云存储的图片如何在访问时,同时进行格式转换、缩放等处理
  • go生成文件md5、sha1摘要简单示例
  • Docker容器:docker数据管理、镜像的创建及dockerfile案例
  • Ajax fetch Axios 的区别
  • 数据库结构差异对比工具
  • Shell编程学习之breakcontinuereturn的应用
  • 有趣的数学 数学建模入门二 一些理论基础
  • Spring复习:(55)ApplicationContext中BeanFactoryPostProcessor是怎么添加到容器的?
  • 给wordpress添加关键词与描述
  • Verilog 入门
  • shell 简单且常用的几种
  • redis基本介绍以及在node中使用
  • React Native 文本输入基础知识
  • qt显示图片并转换成灰度图及伪彩图
  • oj在线编程输入输出
  • 【LeetCode 算法】Add Two Integers 两整数相加-位运算
  • 企业网络日志安全与 EventLog Analyzer
  • 清风数学建模——拟合算法
  • 单片机 (一) 让LED灯 亮