我试图在ssh上执行mysql查询--除非我添加了一个where=xxx子句,否则它工作得很好--有人能指导我吗?下面是一个实用的例子
ssh mysql1.server.xxx "sudo mysql -u root --execute 'SELECT * from mysql.user;'"下面是一个不工作的例子
ssh mysql1.server.xxx "sudo mysql -u root --execute 'SELECT * from mysql.user where User='username';'"发布于 2020-05-19 13:14:27
您有嵌套单引号:
'SELECT ... User='username';'
^ ^ ^ ^ <-- here你需要转义一组引号。示例:
ssh mysql1.example.com "mysql --execute \"SELECT * from mysql.user where User='username';\""发布于 2020-05-20 02:43:43
通常,每当您使用ssh远程执行命令时,注意引号,因为您可能需要转义它们,等等,或者您可能意外地嵌套了它们。
特别是,在本例中,您正在嵌套引用。请参见您的select语句:
“'SELECT *来自mysql.user,其中User='username';‘
没有where子句,它就不是嵌套的,工作得很好。但是使用where子句时,问题在于围绕username的附加单引号。
https://serverfault.com/questions/1017768
复制相似问题