使用awk在mysql数据库中插入多个用户

时间:2017-10-28 18:32:13

标签: mysql bash awk

目前,我有一个usrpwd.txt文件,用户和密码用'space'分隔。我希望将这些用户添加到我的mysql服务器并更改其权限。由于有2000个用户,手动添加它们变得不切实际。我尝试在bash脚本中使用awk:

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

不幸的是,没有添加用户。没有报告错误。 此致,安德烈

1 个答案:

答案 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脚本中,如果你愿意的话。