Python 脚本无法识别 Mysql 查询

标签 python mysql bash ssh

我正在尝试使用 sshpass 接收查询结果,示例如下:

sshpass -p password ssh user@ip "mysql -u user -pdbpassword -h ip -P port database -e \"SELECT * FROM database.ViewName;\""
当我从本地机器启动该命令时,它可以工作。
但是当我使用 Python 脚本时,它不会:
import subprocess
import sys
from subprocess import check_output


command = 'sshpass -p password ssh user@ip "mysql -u user -pdbpassword -h ip -P port database -e \"SELECT * FROM database.ViewName;\""'
output = check_output(command, shell=True)
它返回此错误:
bash: -c: línea 0: EOF inesperado mientras se buscaba un `"' coincidente
bash: -c: línea 1: error sintáctico: no se esperaba el final del fichero
/bin/sh: 1: : Permission denied
Traceback (most recent call last):
  File "ipcompare.py", line 8, in <module>
    output2 = check_output(command2, shell=True)
  File "/usr/lib/python2.7/subprocess.py", line 223, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'sshpass -p password ssh user@ip "mysql -u user -pdbpassword -h ip -P port database -e \"SELECT * FROM database.ViewName;\""' returned non-zero exit status 127
我努力了:
  • chmod 777 到我的脚本,错误仍然相同。
  • 更改单引号的双引号。
  • 转义所有特殊字符。
  • 最佳答案

    我这样做是为了解决问题:

    import subprocess
    import sys
    from subprocess import check_output
    
    
    command = 'sshpass -p password ssh user@ip "mysql -u user -pdbpassword -h ip -P port database -e \\\"SELECT * FROM database.ViewName;\\\""'
    output = check_output(command, shell=True)
    
    转义转义字符是这个问题的答案。

    关于Python 脚本无法识别 Mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63375404/

    相关文章:

    php - 如何从mysql表中选择多个枚举值?

    java - com.mysql.jdbc.MysqlDataTruncation : Data truncation: Incorrect datetime value: ' '

    python - 使用 Python 将 HTML 转换为 PDF

    python - 从 python BeautifulSoup 的输出中删除新行 '\n'

    php - 如何创建数据库和表,并用数据填充它们?我有错误

    java - 如何从在同一个 tomcat 上运行的 Web 应用程序启动/停止应用程序

    regex - 使用sed删除特定字符之间的字符

    python - 如何在python中离线地理编码?

    Python文件操作

    bash - 将 Bash 脚本中的命令选项与字符串分开