MySQL如何在bash中获取变量?

时间:2013-05-17 13:51:09

标签: mysql bash authentication

使脚本通过bash打印出来自MySQL数据库的数据,我遇到了以下问题: 当我尝试登录时,它使用密码作为数据库登录。

脚本是这样的:

#!/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):未知数据库'hobo'

我可能完全误解了一些事情,但我无法理解它可能是什么。

2 个答案:

答案 0 :(得分:3)

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

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

或者可能更清楚:

mysql --user=sqluser --password=$pasx --execute="$CMD" $db

答案 1 :(得分:1)

试试这个:

mysql -u sqluser --password=${pasx} -e "$CMD" $db