mysql_add_user.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/bash
  2. CURRENT_DIR=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
  3. source ${CURRENT_DIR}/../common/common.sh
  4. read -r -p "请输入 Mysql root 密码:" MYSQL_ROOT_PASSWORD
  5. mysql --user="root" --password="${MYSQL_ROOT_PASSWORD}" -e "quit" >> ${LOG_PATH} 2>&1 || {
  6. ansi -n --bold --bg-red "密码不正确"
  7. exit 1
  8. }
  9. read -r -p "请输入要新建的用户名:" MYSQL_NORMAL_USER
  10. [[ $MYSQL_NORMAL_USER =~ ^[a-zA-Z\0-9_\-]+$ ]] || {
  11. ansi -n --bold --bg-red "用户名包含非法字符"
  12. exit 1
  13. }
  14. MYSQL_NORMAL_USER_PASSWORD=`random_string`
  15. read -r -p "是否创建同名数据库并赋予权限?[y/N] " response
  16. case "$response" in
  17. [yY][eE][sS]|[yY])
  18. CREATE_DB=1
  19. ;;
  20. *)
  21. CREATE_DB=0
  22. ;;
  23. esac
  24. mysql --user="root" --password="${MYSQL_ROOT_PASSWORD}" -e "CREATE USER '${MYSQL_NORMAL_USER}' IDENTIFIED BY '${MYSQL_NORMAL_USER_PASSWORD}';" >> ${LOG_PATH} 2>&1
  25. ansi -n --bold --green "用户创建成功";
  26. ansi --green --bold "用户名:"; ansi -n --bg-yellow --black ${MYSQL_NORMAL_USER}
  27. ansi --green --bold "密码:"; ansi -n --bg-yellow --black ${MYSQL_NORMAL_USER_PASSWORD}
  28. if [[ CREATE_DB -eq 1 ]]; then
  29. DATABASE_NAME=${MYSQL_NORMAL_USER}
  30. mysql --user="root" --password="${MYSQL_ROOT_PASSWORD}" -e "CREATE DATABASE \`${DATABASE_NAME}\`;" >> ${LOG_PATH} 2>&1
  31. mysql --user="root" --password="${MYSQL_ROOT_PASSWORD}" -e "GRANT ALL ON \`${DATABASE_NAME}\`.* TO '${MYSQL_NORMAL_USER}';" >> ${LOG_PATH} 2>&1
  32. mysql --user="root" --password="${MYSQL_ROOT_PASSWORD}" -e "FLUSH PRIVILEGES;" >> ${LOG_PATH} 2>&1
  33. fi
  34. ansi -n --bold --green "数据库 ${DATABASE_NAME} 创建成功";