0

编写一个脚本以通过 bash 从 MySQL db 打印数据,我遇到了以下问题:当我尝试登录时,它使用密码作为数据库登录。

脚本是这样的:

#!/bin/bash
echo $1
db=$1
pasx=$2
CMD="use $db; select * from job_log;"
mysql -u sqluser -p "${pasx}" -e "$CMD"

如果我要使用命令运行脚本

User@server:/path/with/file$ sh sql.sh ok hobo

MySQL 返回以下内容:

User@server:/path/with/file$ sh sql.sh ok hobo

好的

输入密码:ERROR 1049 (42000): Unknown database 'hobo'

我可能完全误解了某些东西,但我无法确定它可能是什么。

4

2 回答 2

3

您需要删除-p参数后的空格。请参阅mysql 手册页。您还需要在命令中指定数据库(从查询中删除)

mysql -u sqluser -p$pasx -e "$CMD" $db

或者更清楚:

mysql --user=sqluser --password=$pasx --execute="$CMD" $db
于 2013-05-17T13:53:37.107 回答
1

尝试这个:

mysql -u sqluser --password=${pasx} -e "$CMD" $db
于 2013-05-17T13:57:45.060 回答