您好,登錄后才能下訂單哦!
#!/bin/bash #菜單 function menu(){ echo -e "\t\t\t************************" echo -e "\t\t\t* 操作數據庫 *" echo -e "\t\t\t************************" echo -e "\t\t\t* 1、登錄數據庫 *" echo -e "\t\t\t* 2、創建用戶或增加權限*" echo -e "\t\t\t* 3、sql語句操作數據庫 *" echo -e "\t\t\t* 4、更改用戶密碼 *" echo -e "\t\t\t* 0、退出 *" echo -e "\t\t\t************************" } #輸入mysql的用戶名和密碼 function input(){ echo -e "\t\t\t請登錄數據庫" read -p "請輸入mysql用戶名:" user read -s -p "請輸入mysql的密碼:" passwd } #判斷輸入的用戶名密碼是否正確 function panduan(){ mysql -u$user -p$passwd -e exit 1>/dev/null 2>&1 if [ $?!= 0 ] then echo -e "\n\t\t\t用戶名或密碼錯誤,請重新輸入!" input else echo -e "\n\t\t\t數據庫登錄成功!" fi } #創建用戶并授權 function createuser(){ echo -e "已存在的用戶如下,如果輸入的用戶已存在,則增加該用戶到權限" mysql -u$user -p$passwd -e "select user,host from mysql.user;" read -p "請輸入要創建的用戶名:" newuser read -s -p "請輸入新用戶的密碼:" newpasswd echo -e "請輸入此用戶的主機名(%代表所有的主機都能用此賬戶訪問數據庫,具體到某幾個主機名中間用英文的逗號隔開,如localhost,192.168.1.1):" read hostname echo -e "請輸入授予此用戶操作數據庫的權限(all代表全部,具體到某幾個權限中間用英文的逗號隔開,如create,select):" read grant echo -e "請輸入授予此用戶的訪問的庫和表的權限(*.*代表全部的庫和表,具體到某幾個庫中間用英文的逗號隔開,如database1.table1,database2.table2):" read database mysql -u$user -p$passwd -e "grant $grant on $database to '$newuser'@'$hostname' identified by '$newpasswd';" 2>/tmp/error.txt if [ -s /tmp/error.txt ] then echo -e "\t\t數據庫的權限或庫名、表名輸入錯誤!" else echo -e "\n\t\t\t用戶創建成功!" fi } #命令行操作數據庫 function orders(){ while true do echo -e "\n" echo -e "請輸入mysql語句:" read order mysql -u$user -p$passwd -e "$order" 2>/dev/null if [ $?!=0 ] then echo -e "\t\t\tsql語句輸入錯誤!" fi done } #修改密碼 function change(){ echo -e "數據庫中已存在的用戶如下:" tuser=`mysql -u$user -p$passwd -e "select distinct User from mysql.user;"|awk '{print $1}'|sed -n '2,$p'` echo $tuser while true do echo -e "請輸入要修改的用戶名:" read cuser echo -e "請輸入新密碼" read -s cpasswd echo -e "請再次輸入新密碼" read -s zpasswd echo $tuser|grep $cuser>/tmp/tuser.txt if [ "$cpasswd" = ""$zpasswd"" -a -s /tmp/tuser.txt ] then mysql -u$user -p$passwd <<EOF update mysql.user set password=password('$cpasswd') where user='$cuser'; flush privileges; EOF echo -e "\t\t\t$cuser用戶的密碼修改成功!" elif [ "$cpasswd" != ""$zpasswd"" ] then echo -e "\t\t\t兩次輸入的密碼不一致!" else echo -e "\t\t\t你輸入的用戶不存在!" fi done } while true;do menu read -p "請輸入數字(0~4):" i case $i in 1) while true do input mysql -u$user -p$passwd 2>/tmp/mysql.txt if [ -s /tmp/mysql.txt ] then echo -e "\n\t\t\t用戶名或密碼錯誤,請重新輸入!" else break fi done ;; 2) input panduan createuser ;; 3) input orders ;; 4) input panduan change ;; 0) exit 0;; *) echo -e "\t\t\t請輸入有效數字!" ;; esac done
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。