gpt4 book ai didi

django - 从 django fabfile 运行 mysql 查询

转载 作者:行者123 更新时间:2023-12-02 06:33:26 24 4
gpt4 key购买 nike

如何使用我的 fab 文件运行 SQL 查询,如下所示

def allow_webservers_for_db():

for ip in env.web_servers:
run('echo "GRANT ALL ON %s.* TO \'%s\'@\'%s\' IDENTIFIED BY \'%s\'; | mysql --user=%s --password=%s"' % (env.db_schema, env.db_web_user, ip, env.db_password, env.db_user, env.db_password), pty=True)
run('echo "UPDATE db SET host=\'%s\' where db=\'%s\'; | mysql --user=%s --password=%s --database=mysql"' % (ip, env.db_schema, env.db_web_user, env.db_password), pty=True)
run('echo "UPDATE user SET host=\'%s\' where user=\'%s\';| mysql --user=%s --password=%s --database=mysql"' % (ip, env.db_web_user, env.db_user, env.db_password), pty=True)

代码运行时没有错误,但没有执行它必须执行的操作。如果我将 echo 生成的代码复制并粘贴到 mysql 终端 mysql> 查询将正常运行。

我在这里缺少什么?有什么办法可以更好地运行 mysql 查询吗?我也不想从文本文件加载它。

最佳答案

您只是回显整个字符串。但是您想将第一部分回显到 mysql 的管道中。删除最后一个 " 并将其放在 ;| 之间。

第一行示例:

run('echo "将 %s.* 上的所有内容授予\'%s\'@\'%s\' 由\'%s\' 识别;"| mysql --user=%s --password=%s' ....

关于django - 从 django fabfile 运行 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com