mysql批量建库及用户

1、配置数据库连接信息 config.ini

[client]
host="10.*.*.*"
port=3306
user="root"
password="123456"

2、设置需要创建数据库及用户信息变量

export MYSQL_DATABASE=datbase01,datbase02,datbase03
export MYSQL_USER=user01,user02,user03
export MYSQL_PASSWORD=passd01,passd02,passd03

3、执行批量脚本

#!/bin/bash
# Date:2021-01-12  
# Author: Create by cooper_73

check_config(){
  ch_m=`mysqladmin --defaults-extra-file=./config.ini ping`
  if [ "$ch_m" = "mysqld is alive" ];then
        con_res="ok"
    else
        echo  -e "--> MySql can not connected, Please check ./config.ini or mysql server!"
        exit 0
  fi
}

check_env(){
  if [ ! $MYSQL_DATABASE ] || [ ! $MYSQL_USER ] || [ ! $MYSQL_PASSWORD ]; then
   echo -e "
*** Place check The environment variable whith a null:***
---> MYSQL_DATABASE=$MYSQL_DATABASE
---> MYSQL_USER=$MYSQL_USER
---> MYSQL_PASSWORD=$MYSQL_PASSWORD 
"
   exit 0
  elif [ ${#MYSQL_USER_ARRAY[@]} == ${#MYSQL_DATABASE_ARRAY[@]} ] && [ ${#MYSQL_USER_ARRAY[@]} == ${#MYSQL_PASSWORD_ARRAY[@]} ];then
   env_res="ok"
  else
   echo -e "
*** The environment variable's number is not correct: ***
---> MYSQL_DATABASE:${#MYSQL_DATABASE_ARRAY[@]} 
---> MYSQL_USER:${#MYSQL_USER_ARRAY[@]}
---> MYSQL_PASSWORD:${#MYSQL_PASSWORD_ARRAY[@]} 
"
   exit 0
  fi
}

mysql_active(){
  mysql --defaults-extra-file=./config.ini  "$@"
}

e_info(){
  if [ $? -eq 0 ]; then
     echo -e "==>> Execute Successfully! 
" 
  else
     echo -e "[[error]]: Sorry, Sql Execution Failured!
"
  fi
}

check_config
check_env

IFS=',' read -r -a MYSQL_DATABASE_ARRAY <<< $MYSQL_DATABASE
IFS=',' read -r -a MYSQL_USER_ARRAY <<< $MYSQL_USER
IFS=',' read -r -a MYSQL_PASSWORD_ARRAY <<< $MYSQL_PASSWORD

for index in ${!MYSQL_USER_ARRAY[@]}
    do
        DATABASE=${MYSQL_DATABASE_ARRAY[index]}
        USER=${MYSQL_USER_ARRAY[index]}
        PASSWORD=${MYSQL_PASSWORD_ARRAY[index]}

        echo  "Creating database ${DATABASE} ..."
                mysql_active  --database=mysql  -e "CREATE DATABASE IF NOT EXISTS \`$DATABASE\` ;"
                e_info

        echo "Creating user ${USER} ..."
                mysql_active  --database=mysql  -e "CREATE USER  IF NOT EXISTS '$USER'@'%' IDENTIFIED BY '$PASSWORD' ;"
                e_info

        echo "Giving user ${USER} access to schema ${DATABASE} ..."
                mysql_active  --database=mysql  -e "GRANT ALL ON \`${DATABASE//_/\_}\`.* TO '$USER'@'%' ;"
                e_info

                mysql_active --database=mysql <<<"FLUSH PRIVILEGES ;"
        
    done

echo -e "
 *** MySql Initialization is complete *** 
"
原文地址:https://www.cnblogs.com/cooper-73/p/14313076.html