今天操作docker容器内的数据库经常提示too many connect之类的。想想,这个必须得改啊,然后输入命令
docker exec -it mysql /bin/bash
进入之后直接进入etc中的MySQL文件夹那就是一通配置修改啊。
改完后不忘wq退出保存。都快飘了,然后
docker restart mysql
改好了之后当然是看下日志有没有报这些了
docker logs -f mysql
然后,悲剧就被发现了,对的,确实是被发现,因为在重启MySQL的docker镜像的时候悲剧就发生了,MySQL没启起来。这没有启起来要恢复配置的文件也不会啊,这下可完犊子了。百度了下说是卸载重新装镜像就好了。想想也是,以前刚毕业工作弄坏了数据库不知道配置哪条不对不是就覆盖的default的配置嘛,现在想想几十万的数据。准备收拾下细软等着被炒。
整理好后,想想没事,就谷歌看看有啥办法。因为docker是弱隔离的容器,所以在本地应该可以访问到的,于是查了下命令。还真有
docker inspect [CONTAINER ID]
这个就是看看需要知道的容器的位置,按照这个指示我就输入了我的:
docker inspect mysql
找到graphdriver这行,找到MergedDir 这个配置项。看到这里你就要进行操作了对不对。告诉你,太天真了
有的容器服务器使用的docker启动时用的root权限,现在打开这个路径直接报 的是你的层级太低了,这个目录不是你能来的。sudo我都试过了,无效,只能用root的权限开启,然后看到了进入镜像看到的一样的目录文件,进入etc的mysql文件夹还原了配置,然后docker run一下然后docker ps下发现服务成功跑起。高兴自己的饭碗暂时回到了手中。将打包的细软重新摆放好,高高兴兴的去食堂吃饭去了