mysql經常使用腳本及命令記錄

mysql導出用戶權限

mysql中直接經過受權便可使用對應用戶,沒必要使用建立用戶命令(如CREATE USER 'xxx'@'%' IDENTIFIED BY 'XXX';)先建用戶再受權。mysql

 

方法一:該腳本能夠將全部受權數據到當前目錄下的sql腳本(grants.sql)中,使用grants.sql腳本刷到數據庫中便可完成受權數據遷移(注意:這裏導出的數據包含root用戶的受權關係,並且導入以後會把目前已有的數據覆蓋掉,請確認須要覆蓋再進行導入!!):sql

 

#!/bin/bash    
#Function export user privileges    
  
pwd=xiongge.club
expgrants()    
{  
  mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM mysql.user" | mysql -u'root' -p${pwd} $@ | sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}'  
}  
expgrants > ./grants.sql  

 

注意:上述代碼中,須要根據實際狀況(mysql的root用戶的密碼)替換pwd的值。將上述代碼拷貝後,新建並貼到shell腳本(如exp_grants.sh)中執行該腳本便可完成數據庫用戶受權導出。

shell

 

方法二:該腳本能夠將全部受權數據到當前目錄下的sql腳本(create-users.sql)中,使用create-users.sql腳本刷到數據庫中便可完成受權數據遷移(注意:這裏導出的數據包含root用戶的受權關係,並且導入以後會把目前已有的數據覆蓋掉,請確認須要覆蓋再進行導入!!)數據庫

 

#!/bin/bash    
#Function export user privileges    
hostname=localhost  
username=root  
password=xiongge.club
 port=3306 echo "select concat('show grants for ''',user,'''@''',host, ''';') from mysql.user " | \ mysql --host=$hostname --user=$username --password=$password --port=$port -N | \ mysql --host=$hostname --user=$username --password=$password --port=$port -N | \ sed "s/$/;/" > create-users.sql

 

注意:上述代碼中,須要根據實際狀況替換hostname、username、password、port的值。將上述代碼拷貝後,新建並貼到shell腳本(如exp_grants.sh)中執行該腳本便可完成數據庫用戶受權導出。bash

相關文章
相關標籤/搜索