2013-05-17 56 views
0

製作腳本通過bash從MySQL數據庫打印出數據,我遇到了以下問題: 雖然我嘗試登錄,但它使用密碼作爲登錄的數據庫。MySQL如何在bash中使用變量?

腳本是這樣的:

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

如果我要使用命令

[email protected]:/path/with/file$ sh sql.sh ok hobo 

的MySQL運行該腳本返回以下:

用戶@服務器:/path/with/file $ sh sql.sh ok hobo

ok

輸入密碼:ERROR 1049(42000):未知的數據庫「流浪漢」

我可能會完全誤解的東西,但我不能把我的手指上可能是什麼。

回答

3

您需要刪除-p參數後的空格。請參閱mysql man頁面。您還需要在命令(從查詢中刪除它)來指定數據庫

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

或許更加清晰:

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

隨着過剩的空間,命令是:'mysql -u sqluser -p hobo -e「use ...」'。 'hobo'被解釋爲'mysql'的第一個參數,即。要連接到的數據庫。 – RandomSeed

1

試試這個:

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