社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

MySQL Docker-检查MySQL服务器是否已启动并运行

Devansh Sharma • 3 年前 • 1285 次点击  

我正在尝试制作一个以MySQL映像为基础的映像,我想在知道服务器启动后创建一个数据库(以及其他一些东西)。我有一个引导脚本作为我的入口点,我做的第一件事是在后台运行mysql image的入口点脚本 ./entrypoint.sh mysqld & .

目前,我在这之后要做的是开始一个循环,使用一些睡眠 mysqladmin --ping 检查服务器是否已启动。一旦启动,我启动其他命令并开始创建我想要的数据库。

当mysql已经初始化(即不是第一次启动容器/entrypoint.sh时)时,这可以正常工作。但在第一次运行时,该映像似乎创建了一个临时mysql服务器( mysqld --daemonize --skip-networking --default-time-zone=SYSTEM --socket="${SOCKET}" -从entrypoint脚本),运行一些命令,然后停止该服务器。发布它启动实际服务器的消息。我面临的问题是,mysqladmin ping命令实际上对临时服务器本身做出了成功的反应,因此我的脚本试图创建失败的数据库。

我在这里读到了很多答案,说要运行ping命令(我正在使用)来检查服务器是否启动,但我看到的答案中没有提到任何关于这个临时服务器的内容,也没有提到如何检测它是否是临时服务器。

有什么线索可以让我发现吗?或者,在我上面提到的流程的任何部分,我能做得更好吗?

我现在确实有一个黑客解决方案。其中一个涉及更新entrypoint脚本,以便为临时服务器使用不同于默认的套接字文件,然后我可以使用该文件来查看运行的服务器是否是临时的,但如果存在标准解决方案,我宁愿不使用此方法。

谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129786
 
1285 次点击  
文章 [ 1 ]  |  最新文章 3 年前
danblack
Reply   •   1 楼
danblack    3 年前

因为初始化使用 --skip-networking 使用 --protocol tcp 作为 mysqladmin 执行 ping 在tcp上,即最后一个实例正在运行时。