MySQL 在 ssh 内、bash 内查询,带参数

标签 mysql bash ssh

我正在编写一个小型 bash 脚本来获取数据库表的随机样本,通过 ssh 连接。

ssh $SERVER 'mysql -e "SELECT * FROM ${TABLE} WHERE RAND() < ${PROBABILITY} LIMIT ${LIMIT}" -uroot -p ${DATABASE} > temp_dump_file.sql'

我无法解释要解释的参数。错误是:

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE RAND() <  LIMIT' at line 1

提前致谢:)

最佳答案

正如 @l0b0 所指出的,它失败的原因是因为您使用了单引号,因此 ${TABLE} 等将无法正确扩展。尝试交换引号的使用:

ssh $SERVER "mysql -e 'SELECT * FROM ${TABLE} WHERE RAND() < ${PROBABILITY} LIMIT ${LIMIT}' -uroot -p ${DATABASE} > temp_dump_file.sql"

关于MySQL 在 ssh 内、bash 内查询,带参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21244826/

相关文章:

mysql - 以正确的方式使用 PRIMARY KEYS(处理语言环境)

linux - 在 linux 中是否有用于流 i/o 的真实文件?

linux - 使用 SSH 在远程服务器上启动后台进程,并退出 session

asp.net - Mod mono 通过 SSH 服务于不同的 Web 应用程序实例

linux - 如何将返回/输入按键编码为发送到 SSH shell 的字符串?

c# - 如何在 MySQL Entity Framework 中执行过程

mysql - 如何获取多列不同值并且每个不同字段具有相同的反向数据

php - 选择字段为空或使用查询生成器 Yii 的数据

bash - 文档中唯一单词的数量

node.js - 了解使用 ffmpeg 将 rtmp 输入发送到 node.js 脚本的脚本