MySQL中用户权限迁移

2021年11月21日 阅读数:8
这篇文章主要向大家介绍MySQL中用户权限迁移,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

MySQL中用户权限迁移mysql

近期须要对两台mysql进行合并,涉及到用户权限问题,特将须要合并的mysql中的用户权限进行一次迁移,并记录以下sql

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

二、获取用户权限信息

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

三、修改导出的 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

 

2、导入用户权限服务器

一、copy 导出的mysql_all_users_sql.sql到新的mysql服务器上

scp /tmp/mysql_all_users_sql.sql user@192.168.1.123:/tmp/
回车,输入user的密码

二、导入到mysql库中

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

三、使用导进来的用户测试登陆和验证权限

 

至此,mysql中用户权限迁移完成。session