有没有一种方法可以使mysql服务器保持停止状态,并仅在尝试连接后才能启动它。
我在ubuntu机器上有一个开发mysql服务器,我想使其停止运行,除非需要,并且我不想记住手动启动它。
如果可以使用无业游民或docker之类的方法解决此问题,就可以了。
奖励点,表示是否可以在可配置的空闲时间后关闭服务器。
我记得openshift做了这样的事情,如果没有建立连接, vm 将仅在尝试进行某种连接后才会关闭并启动。
答案 0 :(得分:1)
任何MySQL客户端都会尝试连接到端口3306(默认情况下)以建立MySQL连接。如果MySQL服务器未运行,则端口3306上没有监听,因此连接将完全失败。
要执行您所描述的操作,需要在端口3306上监听某事。也许是某种代理,例如HAProxy或ProxySQL。也许可以配置其中之一来按需启动服务,但我从未见过有人尝试这样做。
原因是启动MySQL服务器进程需要一些时间。至少需要几秒钟,但是可能要更长一些,这取决于服务器是否需要执行崩溃恢复(如果上次停止运行时没有彻底关闭服务器)。启动它的代理必须继续重试连接,直到响应为止。
还可能无法启动已关闭的MySQL服务器,例如,如果存在阻止启动的配置问题或损坏的数据库。然后,您的客户端将反复尝试连接,每次都会有延迟,并且永远无法启动服务。
我想知道您真正需要的不是MySQL,而是SQLite之类的嵌入式数据库。