天天看点

shell脚本mysql密码怎么写_shell脚本实例:添加mysql数据库、用户名、密码等

分享一个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'