MySQL中使用者許可權遷移
阿新 • • 發佈:2021-08-12
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中使用者許可權遷移完成。