分享一个shell脚本,可以用来添加mysql数据库,创建mysql的用户名与密码,以及远程主机信息等。
代码:
复制代码 代码示例:
#!/bin/bash
# 用来添加mysql、用户名与密码的shell 脚本
# 还可以在创建数据库时,赋予远程访问权限
_db="$1"
_user="$2"
_pass="$3"
_dbremotehost="$4"
_dbrights="$5"
## Path to mysql bins ##
mysql="/usr/bin/mysql"
## Mysql root settings ##
_madminuser='root'
_madminpwd='MySQL-PassWord'
_mhost='localhost'
# 确认至少提供了三个参数
[[ $# -le 2 ]] && { echo "Usage: $0 'DB_Name' 'DB_USER' 'DB_PASSORD' ['remote1|remote2|remoteN'] ['DB_RIGHTS']"; exit 1; }
# 权限检测
[[ -z "${_dbrights}" ]] && _dbrights="ALL"
# 构造 mysql查询
_uamq="${mysql} -u "${_madminuser}" -h "${_mhost}" -p'${_madminpwd}' -e 'CREATE DATABASE ${_db};'"
_upermq1="${mysql} -u "${_madminuser}" -h "${_mhost}" -p'${_madminpwd}' -e \"GRANT ${_dbrights} ON ${_db}.* TO ${_user}@localhost IDENTIFIED BY '${_pass}';\""
# 执行mysql查询
$_uamq
$_upermq1
# 在bash中循环读取远程主机的IP
# 建立queires授予权限,所有的远程网络服务器或主机通过IP使用相同的用户名
IFS='|'
for i in ${_dbremotehost}
do
_upermq2="${mysql} -u "${_madminuser}" -h "${_mhost}" -p'${_madminpwd}' -e \"GRANT ${_dbrights} ON ${_db}.* TO ${_user}@${i} IDENTIFIED BY '${_pass}';\""
$_upermq2
done
调用示例:
1,数据库bar、用户名 tom,密码jerry
复制代码 代码示例:
./script.sh bar tom jerry
2,添加一个数据库为 bar,用户名为 tom, 密码为 jerry ,允许远程主机192.168.1.5或192.168.1.11访问:
复制代码 代码示例:
./script.sh bar tom jerry '192.168.1.5|192.168.1.11'
3,添加一个数据库为 bar,用户名为 tom, 密码为 jerry ,允许远程主机192.168.1.5或192.168.1.11访问,不过仅允许权限SELECT,INSERT,UPDATE,DELETE。
如下:
复制代码 代码示例:
./script.sh bar tom jerry '192.168.1.5|192.168.1.11' 'SELECT,INSERT,UPDATE,DELETE'