最好的方法来分离python任何地方pymysql数据库连接使用qgtunnel (quotguard)?



我们正在运行15-20个不同的python anywhere脚本,它们都与同一个数据库通信。脚本是通过不同的任务调度的,这些任务有时会同时运行,当启动qgtunnel时,我们会得到以下错误…

2022/05/16 12:52:11 Error initializing tcp socket 127.0.0.1:3306: listen tcp 127.0.0.1:3306: bind: address already in use
2022/05/16 12:52:11 Error initializing tcp socket 127.0.0.1:1433: listen tcp 127.0.0.1:1433: bind: address already in use 

我们想让我们的mysql提供者让mysql监听更多的端口,但他们不允许。我们还考虑过为每个脚本设置不同的环境,但在我们尝试之前,我想问一下是否有更好的方法。谢谢你的建议。

在与quotaquard合作后,他们的CTO有了一个很棒的想法。在运行每个脚本之前,覆盖.qgtunnel设置文件并指定端口。我把它扩展到所有脚本,现在没有绑定错误了。重写设置文件如下所示:

cat <<EOF > /home/qgtunnel/.qgtunnel
[qgtunnel.Name_of_script_changing_file_sh]
accept = "127.0.0.1:5007"
connect = "host_url:3306"
encrypted = false
transparent = true
EOF
cd /home/qgtunnel ./bin/qgtunnel python3 ~/dir/python_script.py