Mysql容器启动失败-解决⽅案
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" -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=****  ,变成了默认密码,因为我创建完容器之后修改了⼀次密码,导致现在重启之后数据还原与环境变量不符,导致连接失败。虽然不能确定问题是否是这⾥的问题,但是要先解决这个环境变量的问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。