我正在编写一个小型 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/