濮阳杆衣贸易有限公司

主頁 > 知識庫 > 通過Shell腳本批量創(chuàng)建服務器上的MySQL數(shù)據(jù)庫賬號

通過Shell腳本批量創(chuàng)建服務器上的MySQL數(shù)據(jù)庫賬號

熱門標簽:武漢語音電銷機器人加盟 地圖標注x是啥意思 輝縣市地圖標注 同花順電話機器人微信 外呼系統(tǒng)的合法性 北京電銷機器人對市場的影響 湖北孝感如何辦理 威海電銷外呼系統(tǒng)好用嗎 房產證地圖標注的兩個面積

1.項目背景

因監(jiān)控需要,我們需要在既有的每個MySQL實例上創(chuàng)建一個賬號。公司有數(shù)百臺 MySQL 實例,如果手動登入來創(chuàng)建賬號很麻煩,也不現(xiàn)實。所以,我們寫了一個簡單的shell腳本,用來創(chuàng)建批量服務器的mysql 賬號。

 2.執(zhí)行腳本內容;

#!/bin/bash
## 此段shell 腳本的主要功能是實現(xiàn)在多個SQL Server IP實例上,創(chuàng)建賬號。輸入?yún)?shù)是兩個,第一個是數(shù)據(jù)庫所在的IPs,即多個Server IP構成的字符串,IP間用逗號隔開。第二個參數(shù)是 端口(3306 或 3307)
##MySQL程序所在路徑--mysql bin 文件所在路徑;如果由建立軟連接,可直接是mysql
command_linebin="/data/mysql5720/bin/mysql"
##用來連接MySQ的賬號和密碼
username="DBA_MYSQLACC"
password="DBAACCTEST109211706DF"
## 新創(chuàng)建的賬號和密碼
createuid="testuid"
createpwd="testpwd"
##指定新創(chuàng)建的用戶在那個主機上可以登錄,如果是本地用戶可用localhost;如果指定規(guī)則的可以使用通配符%
phost="177.177.%"
mysqlserverIPs=$1
echo $mysqlserverIPs
## 按“,”分割,將字符串轉換為數(shù)組。
IParr=(${mysqlserverIPs//,/ })
echo $IParr
for ((i=0;i${#IParr[@]};i++))
do
  IP=${IParr[$i]}
  echo "${IP}"
select_sql="select * from user where user=\"$createuid\""
msg=$(${command_linebin} -h ${IP} -P $2 -u$username -p$password -s mysql -e "${select_sql}")
echo $msg
##創(chuàng)建賬號前,先檢查需要創(chuàng)建的賬號是否已經存在,如果已經存在了,則直接退出。
if [[ $msg = "" ]] ;then
  echo $(date -d today +"%Y%m%d%H%M%S") $mip "The Condition is OK,permit to create UID."
else
  echo $(date -d today +"%Y%m%d%H%M%S") $IP "The UID you want create has been exited, please check it! The Act Quit!"
  exit
 fi
## 以下幾行代碼是創(chuàng)建的關鍵
${command_linebin} -h ${IP} -P $2 -u$username -p$password -s mysql EOF
CREATE USER '$createuid'@'$phost' IDENTIFIED BY '$createpwd';
GRANT Select,PROCESS ON *.* TO '$createuid'@'$phost';
flush privileges;
EOF
##創(chuàng)建后,再次檢查賬號看否已將存在。如果不存在,則說明創(chuàng)建失敗,直接退出。
select_sql="select * from user where user=\"$createuid\""
msg=$(${command_linebin} -h ${IP} -P $2 -u$username -p$password -s mysql -e "${select_sql}")
echo $msg
if [[ $msg = "" ]] ;then
  echo $(date -d today +"%Y%m%d%H%M%S") ${IP} "The action to create UID Error,Please Check it! The Act Quit! "
  exit
else
  echo $(date -d today +"%Y%m%d%H%M%S") ${IP} "Congratulation! Create UID successful"
 fi
done

3. 執(zhí)行舉例

Step 1 將代碼放置到執(zhí)行文件中,可執(zhí)行文件命名為 mysql_CreateUIDMulti.sh

Step 2 請對此文件授予可執(zhí)行權限,否則,提示以下錯誤。

Step 3 執(zhí)行的具體命令(參數(shù)格式),例如 在 177.177.XXX.128,177.177.XXX.144 兩個 3306的實例上創(chuàng)建賬號

./mysql_CreateUIDMulti.sh 177.177.XXX.128,177.177.XXX.144 3306

Step 4 打印的執(zhí)行結果如下

177.177.XXX.128,177.177.XXX.144
177.177.XXX.128
177.177.XXX.128
mysql: [Warning] Using a password on the command line interface can be insecure.
20180529171802 The Condition is OK,permit to create UID.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
177.177.% testuid Y N N N N N N N Y N N N N N N N N N N N N N N N N N N N N 0 0 0 0 mysql_native_password *22CBF14EBDE8814586FF12332FA2B6023A7603BB N 2018-05-29 17:18:02 NULL N
20180529171802 177.177.XXX.128 Congratulation! Create UID successful
177.177.XXX.144
mysql: [Warning] Using a password on the command line interface can be insecure.
177.177.% testuid Y N N N N N N N Y N N N N N N N N N N N N N N N N N N N N 0 0 0 0 mysql_native_password *22CBF14EBDE8814586FF12332FA2B6023A7603BB N 2018-05-30 00:56:38 NULL N
20180529171802 177.177.XXX.144 The UID you want create has been exited, please check it! The Act Quit!

4.補充說明

如果創(chuàng)建一個服務器上的MySQL賬號,可按照以下格式

./mysql_CreateUIDMulti.sh 177.177.XXX.128 3306

打印的Log 如下

177.177.XXX.128
177.177.XXX.128
177.177.XXX.128
mysql: [Warning] Using a password on the command line interface can be insecure.
20180529173517 The Condition is OK,permit to create UID.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
177.177.% testuid Y N N N N N N N Y N N N N N N N N N N N N N N N N N N N N 0 0 0 0 mysql_native_password *22CBF14EBDE8814586FF12332FA2B6023A7603BB N 2018-07-29 17:35:17 NULL N
20180529173517 177.177.XXX.128 Congratulation! Create UID successful

總結

以上所述是小編給大家介紹的通過Shell腳本批量創(chuàng)建服務器上的MySQL數(shù)據(jù)庫賬號 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

您可能感興趣的文章:
  • 監(jiān)控MySQL主從狀態(tài)的shell腳本
  • shell腳本一鍵安裝MySQL5.7.29的方法
  • mysql常用備份命令和shell備份腳本分享
  • shell腳本定時備份MySQL數(shù)據(jù)庫數(shù)據(jù)并保留指定時間
  • shell腳本自動化創(chuàng)建虛擬機的基本配置之tomcat--mysql--jdk--maven
  • shell腳本實現(xiàn)mysql定時備份、刪除、恢復功能
  • 一個Shell小腳本精準統(tǒng)計Mysql每張表的行數(shù)實現(xiàn)
  • 使用shell腳本來給mysql加索引的方法
  • 干掉一堆mysql數(shù)據(jù)庫,僅需這樣一個shell腳本(推薦)
  • 使用shell腳本每天對MySQL多個數(shù)據(jù)庫自動備份的講解
  • MySQL Shell的介紹以及安裝

標簽:安康 紹興 日喀則 蚌埠 武威 麗江 迪慶 西寧

巨人網絡通訊聲明:本文標題《通過Shell腳本批量創(chuàng)建服務器上的MySQL數(shù)據(jù)庫賬號》,本文關鍵詞  通過,Shell,腳本,批量,創(chuàng)建,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《通過Shell腳本批量創(chuàng)建服務器上的MySQL數(shù)據(jù)庫賬號》相關的同類信息!
  • 本頁收集關于通過Shell腳本批量創(chuàng)建服務器上的MySQL數(shù)據(jù)庫賬號的相關信息資訊供網民參考!
  • 推薦文章
    井陉县| 沂源县| 阿拉善右旗| 乐昌市| 常熟市| 垣曲县| 瑞丽市| 内黄县| 石柱| 南川市| 鄂伦春自治旗| 威宁| 彰武县| 慈利县| 皮山县| 保亭| 阿坝| 北票市| 明溪县| 师宗县| 昌宁县| 忻城县| 若尔盖县| 广河县| 白银市| 富蕴县| 奎屯市| 南郑县| 博罗县| 南康市| 巴彦县| 宝鸡市| 定南县| 高雄市| 建瓯市| 丹凤县| 磐石市| 固始县| 新野县| 祥云县| 乌什县|