1. 程式人生 > 其它 >MySQL中使用者許可權遷移

MySQL中使用者許可權遷移

MySQL中使用者許可權遷移

近期需要對兩臺mysql進行合併,涉及到使用者許可權問題,特將需要合併的mysql中的使用者許可權進行一次遷移,並記錄如下

一、匯出使用者許可權

1、獲取mysql庫中應用使用者的列表資訊

mysql -B -N -uroot -p'你的密碼' -S /tmp/mysql3306.sock -e "SELECT CONCAT('\'', user,'\'@\'', host, '\'') FROM user WHERE user NOT IN('replication','root','','mysql.session','mysql.sys')" mysql > /tmp/mysql_all_users.txt

2、獲取使用者許可權資訊

while read line; do mysql -B -N -uroot -p'你的密碼' -S /tmp/mysql3306.sock -e "SHOW GRANTS FOR $line"; done < /tmp/mysql_all_users.txt > /tmp/mysql_all_users_sql.sql

3、修改匯出的mysql_all_users_sql.sql

在每行的結尾增加“;”,做為結束符

sed -i 's/$/;/' /tmp/mysql_all_users_sql.sql

 在最後一行增加 “flush privileges;” 更新許可權,使其生效

echo "flush privileges;" >> /tmp/mysql_all_users_sql.sql

二、匯入使用者許可權

1、copy 匯出的mysql_all_users_sql.sql到新的mysql伺服器上

scp /tmp/mysql_all_users_sql.sql [email protected]:/tmp/
回車,輸入user的密碼

2、匯入到mysql庫中

mysql -u root -p"你的密碼" -S /tmp/mysql3306.sock < /tmp/mysql_all_users_sql.sql

3、使用導進來的使用者測試登入和驗證許可權

至此,mysql中使用者許可權遷移完成。