MySQL中匯出使用者許可權設定的指令碼分享

2022-10-06 01:42:09 字數 1617 閱讀 3248

在對mysql資料庫進行遷移的時候,有時候也需要遷移源資料庫內的使用者與許可權。對於這個遷移我們可以從mysql.user表來獲取使用者的相關許可權來生成相應的sql語句,然後在目標伺服器上來執行生成的sql語句即可。本文提供了生成提取使用者許可權的指令碼並給出演示。

1、生成使用者程式設計客棧許可權的指令碼

複製** **如下:

[root@hkbo ~]#程式設計客棧 more exp_grant.sh 

#!/bin/bash 

#function export user privileges 

pwd=123456 

expgrants() 

-n $@ -e "select concat( 

程式設計客棧;  'show grants for ''', user, '''@''', host, ''';' 

) as query from mysql.user" | \ 

mysql -u'root' -p$ $@ | \ 

sed 's/\(grant .*\)/\1;/;s/^\(grants for .*\)/-- \1 /;/--/' 

}  expgrants > ./grants.sql 

2、生成許可權sql指令碼

複製** **如下:

[root@hkbo ~]# ./exp_gra程式設計客棧nt.sh  

[root@hkbo ~]# head grants.sql 

-- grants for [email protected]  

grant all privileges on *.* to 'root'@'127.0.0.1' identified by password '*eb3ea446c759c9da93f84fcb56430dbef051a9dd' with grant option; 

grant all privileges on `cnbo0815`.* to 'root'@'127.0.0.1' with grant option; 

-- grants for [email protected].%  

grant all privileges on *.* to 'root'@'172.16.10.%' identified by password '*6bb4837eb74329105ee4568dda7dc67ed2ca2ad9'; 

-- grants for [email protected].%  

grant usage on *.* to 'cnbo'@'192.168.1.%' identified by password '*abd91bad4a3448428563952e281015b237310ea8'; 

........................... 

&nb程式設計客棧sp;

3、在目標伺服器上執行指令碼

將生成的指令碼在目標伺服器上執行即可。 mysql -uname -ppwd

需要注意:

a、目標服務上為非空伺服器,已經存在一些賬戶及許可權應考慮會覆蓋的問題。

b、如果僅僅需要遷移非root使用者,可以在原指令碼中新增過濾條件,即 where user<>'root' 。

本文標題: mysql中匯出使用者許可權設定的指令碼分享

本文位址:

Mysql 使用者許可權設定

關於mysql的使用者管理,筆記 1 建立新使用者 通過root使用者登入之後建立 grant all privileges on to testuser localhost identified by 123456 建立新使用者,使用者名為testuser,密碼為123456 grant all ...

mysql許可權使用者設定

drop user employa localhost 刪除乙個使用者 新建三個使用者 create user employeea localhost identified by 1234 create user employeeb localhost identified by 1234 crea...

mysql使用者許可權設定

1 建立新使用者 通過root使用者登入之後建立 grant all privileges on to testuser localhost identified by 123456 建立新使用者,使用者名為testuser,密碼為123456 grant all privileges on to ...