天天看點

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'