2014-01-20 20 views
0

我正在写一个小的bash脚本来通过ssh连接一个数据库表的随机样本。在ssh里面的bash中,用参数进行MySQL查询

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 

感谢提前:)

回答

1

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

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

就是这样。谢谢 :) – mlg