2017-10-28 48 views
0

目前,我有一個usrpwd.txt文件,其中用戶和密碼由'space'分隔。我希望將這些用戶添加到我的MySQL服務器並更改他們的權限。由於有2000個用戶,因此手動添加它們變得不切實際。我試圖在bash腳本中使用awk:使用awk在mysql數據庫中插入多個用戶

awk '{mysql -u root -proot -e "CREATE USER '\''"$1"'\''@'\''%'\'' IDENTIFIED BY '\''"$2"'\'';"}' ./conf/usrpwd.txt ; 

不幸的是,用戶沒有被添加。沒有錯誤報告。 的問候,安德烈

+0

我發現的另一種方式,遺憾的是不能回答的又問題,所以我把它留在此評論: #/斌/慶典 而IFS =」「讀-r VALUE1 VALUE2其餘 做 的mysql -u root -proot -e「CREATE USER'」$ value1「'@'%'IDENTIFIED BY'」$ value2「';」 mysql -u root -proot -e「授予選擇,插入,更新,刪除*。*到'」$ value1「'@'%';」 done <./conf/usrpwd.txt –

+0

如果您添加簡潔,可測試的示例輸入和預期輸出,我相信有人能夠幫助您。看[問]如果不清楚。 –

回答

0

我的第一直覺就不會在awk來解決這個問題,但無論如何,在這裏它是:

$ cat tst.awk 
{ 
    cmd = sprintf("mysql -u root -p root -h localhost -e \"CREATE USER '%s'@'%' IDENTIFIED BY '%s'\"", $1, $2) 
    if ((cmd | getline line) > 0) 
     print line 
    close(cmd) 
} 

您可以致電此類似:

$ awk -f tst.awk usrpwd.txt 

,或者你如果你願意,可以把它放在bash腳本中。

+0

你可能會建議'print cmd';然後'awk -f tst.awk usrpwd.txt | bash' –

相關問題