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