创建多个mysql用户和数据库

创建多个mysql用户和数据库

在 Ubuntu 12.04 上使用 mysql 5.5,创建 30 个拥有自己的数据库的新用户的最简单方法是什么?

我知道如何使用创建用户命令

答案1

可能在 bash 中编写脚本。获取用户列表,然后执行以下操作(您需要对其进行大量修改):

for line in $ (cat users.txt) do
   mysql < create database $line;
   mysql < create user $line@localhost identified by defaultpassword;
   mysql < grant all privileges on $line to $line@'localhost;
done

答案2

#!/bin/bash
UNAMEBASE="drupal"
# number of users to create
COUNT=40
i=1
BTICK='`'
SQL=''
echo "Database  User            Password" > ./drupal_training_users.txt
until [ $i -gt $COUNT ]; do
        UNAME="$UNAMEBASE$i"
        UDB="drupal_$i"
        UPASS=$(makepasswd --char=8)
        echo "$UDB      $UNAME  $UPASS" >> ./drupal_training_users.txt
        Q1="CREATE DATABASE IF NOT EXISTS $UDB;"
        Q2="GRANT ALL ON ${BTICK}$UDB${BTICK}.* TO '$UNAME'@'localhost' IDENTIFIED BY '$UPASS';"
        SQL="$SQL${Q1}${Q2}"
        let i=i+1
done

SQL="$SQL FLUSH PRIVILEGES;"
mysql -u root -p -e "$SQL"

答案3

我已修改此脚本以创建文本文件的多个 mysql 用户和数据库。
在这种情况下,用户名和数据库名称相同。
语法文本文件类似:
id1010
id2020
id3030

#!/bin/bash
BTICK='`'
SQL=''
File="users.txt"
Lines=$(cat $File)
for Line in $Lines
do
echo "$Line"
        UNAME="$Line"
        UDB="$Line"
        UPASS="123456" 
        Q1="CREATE DATABASE IF NOT EXISTS $UDB;"
        Q2="CREATE USER $UNAME@'%' IDENTIFIED BY '$UPASS';"
        Q3="GRANT ALL ON ${BTICK}$UDB${BTICK}.* TO '$UNAME'@'%';"
        SQL="$SQL${Q1}${Q2}${Q3}"
done

SQL="$SQL FLUSH PRIVILEGES;"
mysql -u root -p -e "$SQL"

相关内容