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

Mysql容器启动失败-解决方案

在看问题之前首先熟悉几个命令

相关命令

1.docker attach 连接到正在运行中的容器;

命令:docker attach --sig-proxy=false mynginx

2.docker exec 这个命令比较方便,可以在容器运行别的服务时连接上该容器;

命令:docker exec -it mysql_database1 /bin/bash

3.docker inspect mysql 查看容器的详细信息;

命令:docker inspect mysql

4.docker commit :从容器创建一个新的镜像;

命令:docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1 

错误描述

启动mysql容器命令

 

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=topsci123 -d centos/mysql-57-centos7

 

启动mysql后可以正常运行,期间修改了一次密码,这个启动其实是很不严谨的要加上MySQL的配置文件和数据的映射路径,

正确启动命令: docker run -p 3306:3306 --name mysql -v /opt/docker_v/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d imageID

 

后来主机重启之后,我重启了一下docker 服务,发现mysql 容器挂了,查看mysql容器日志

 

Version: '5.7.21' socket: '/tmp/mysql.sock' port: 0 MySQL Community Server (GPL)
2018-11-29T12:11:04.706404Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
---> 12:11:04 MySQL started successfully
2018-11-29T12:11:04.714244Z 3 [Note] Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
=> sourcing 40-datadir-action.sh ...
---> 12:11:04 Running datadir action: upgrade-warn
---> 12:11:04 MySQL server version check passed, both server and data directory are version 5.7.
=> sourcing 50-passwd-change.sh ...
---> 12:11:04 Setting passwords ...
mysql: [Warning] Using a password on the command line interface can be insecure.
2018-11-29T12:11:04.745280Z 4 [Note] Access denied for user 'root'@'localhost' (using password: YES)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

 

这里可以看出是账号密码连接错误,虽然不知道为什么刚起来docker 容器他就直接要连接进入mysql,因为密码在安装完之后修改了一次密码,其实也不建议这么做的,因为每次docker 重启之后原容器都会初始化,除非按照上面说到的把相关重要的文件或者数据映射到本地,而且容器本身就不适合数据库,这里做一个小科普。

 

通过 docker inspect mysql 命令发现环境变量MYSQL_ROOT_PASSWORD=****  ,变成了默认密码,因为我创建完容器之后修改了一次密码,导致现在重启之后数据还原与环境变量不符,导致连接失败。虽然不能确定问题是否是这里的问题,但是要先解决这个环境变量的问题。

 

转载于:https://www.cnblogs.com/mjiu/p/10040661.html

相关文章:

  • Linux的epoll模型
  • java B2B2C电子商务平台分析之七-Spring Cloud Config
  • 安排
  • Effective_STL 学习笔记(三十六) 了解 copy_if 的正确 实现
  • 强健x86平台
  • Dubbo各种协议详解
  • Java,console输出实时的转向GUI textbox
  • SpringBoot 日志框架
  • Expression.Bind()方法的应用
  • python基础----特性(property)、静态方法(staticmethod)、类方法(classmethod)、__str__的用法...
  • Extjs 4 grid中的checkbox的加载时预选中【默认选中】
  • java: -source 1.6 中不支持 switch 中存在字符串.....
  • Python中大名鼎鼎的face_recognition使用
  • Spark 触发Job提交
  • 【bzoj1013】[JSOI2008]球形空间产生器sphere
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Angular 响应式表单 基础例子
  • CSS 专业技巧
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • DOM的那些事
  • IndexedDB
  • iOS 系统授权开发
  • iOS 颜色设置看我就够了
  • JavaScript 一些 DOM 的知识点
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • laravel with 查询列表限制条数
  • Python 反序列化安全问题(二)
  • Redux系列x:源码分析
  • scrapy学习之路4(itemloder的使用)
  • SwizzleMethod 黑魔法
  • underscore源码剖析之整体架构
  • Vue 2.3、2.4 知识点小结
  • vue:响应原理
  • 阿里云购买磁盘后挂载
  • 笨办法学C 练习34:动态数组
  • 你真的知道 == 和 equals 的区别吗?
  • 前端技术周刊 2019-01-14:客户端存储
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 深度学习入门:10门免费线上课程推荐
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 问题之ssh中Host key verification failed的解决
  • 我这样减少了26.5M Java内存!
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 如何在招聘中考核.NET架构师
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #Z2294. 打印树的直径
  • (3)STL算法之搜索
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (力扣)循环队列的实现与详解(C语言)