首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于SSH的Mysql命令

问基于SSH的Mysql命令
EN

Server Fault用户
提问于 2020-05-19 12:59:21
回答 2查看 373关注 0票数 0

我试图在ssh上执行mysql查询--除非我添加了一个where=xxx子句,否则它工作得很好--有人能指导我吗?下面是一个实用的例子

代码语言:javascript
复制
ssh mysql1.server.xxx "sudo mysql -u root --execute 'SELECT * from mysql.user;'"

下面是一个不工作的例子

代码语言:javascript
复制
ssh mysql1.server.xxx "sudo mysql -u root --execute 'SELECT * from mysql.user where User='username';'"
EN

回答 2

Server Fault用户

发布于 2020-05-19 13:14:27

您有嵌套单引号:

代码语言:javascript
复制
'SELECT ... User='username';'
^                ^        ^ ^ <-- here

你需要转义一组引号。示例:

代码语言:javascript
复制
ssh mysql1.example.com "mysql --execute \"SELECT * from mysql.user where User='username';\""
票数 1
EN

Server Fault用户

发布于 2020-05-20 02:43:43

通常,每当您使用ssh远程执行命令时,注意引号,因为您可能需要转义它们,等等,或者您可能意外地嵌套了它们。

特别是,在本例中,您正在嵌套引用。请参见您的select语句:

“'SELECT *来自mysql.user,其中User='username';‘

没有where子句,它就不是嵌套的,工作得很好。但是使用where子句时,问题在于围绕username的附加单引号。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1017768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档