我正在开发一个“本地”PHP 项目。这是一个在 Debian VM 中运行的 PHP 应用程序,旨在在用户自己的 PC 上使用。
我有几个 python 脚本作为来自 /etc/init.d 的根服务运行,它们处理应用程序更新、日志、与 USB 外围设备的通信和其他内容。
编辑 1: VM 是 Turnkey Linux LAMP 映像,python 版本为 2.7.3,MySQL 5.5.47
PHP 应用程序通过 TCP 套接字与 python 服务对话,发送用户需要的特定任务的请求。
现在,我试图让用户选择让 MySQL 服务器只绑定到本地主机还是与网络上的其他用户共享。为此,我让 python 服务通过 my.cnf 文件,并注释掉 bind-address = 127.0.0.1 行,或者将其取消注释以使服务器再次本地化。
在 my.cnf 编辑之后,python 脚本调用 /etc/init.d/mysql restart 以使更改生效。
问题是,现在 mysql 最终会侦听 Python 服务正在侦听 PHP 请求的端口,如果我需要重新启动该服务,Python 会失败,声称它无法打开该端口,因为它已经在使用中。
我不明白为什么 mysql 最终会监听 python 服务使用的端口而不是 my.cnf 文件所说的 3306 。
此外,如果我通过 ssh 连接到 VM 并手动重新启动 mysql,它会返回到 3306 上的侦听,并且我可以正常启动 python 服务。
python端的一些代码:
RECV_BUFFER …Run Code Online (Sandbox Code Playgroud)