在对MySQL数据库进行迁移的时候,有时候也需要迁移源数据库内的用户与权限。对于这个迁移我们可以从mysql.user表来获取用户的相关权限来生成相应的SQL语句,然后在目标服务器上来执行生成的SQL语句即可。本文提供了生成提取用户权限的脚本并给出演示。
1、生成用户权限的脚本
(root@db上传)# exp_grant。sh
# !/bin/bash
#函数导出用户特权
pwd=123456
expgrants ()
{
,mysql - b - u 'root”- p $ {pwd} - n $ @ - e”选择CONCAT (
,,“拨款””,用户,“@”,主人,”“;”
,,)从mysql查询。用户“| \
,mysql - u 'root”- p $ {pwd} $ @ | \
,sed的s/\(格兰特。* \)/\ 1;/;s/^ \(拨款。* \)/猏 1/,/,/{x; p; x;}’
}
expgrants祝辞。/grants.sql
2、生成权限SQL脚本
#。/exp_grant.sh
#猫赠款。sql
——资助root@127.0.0.1
*上的所有特权授予。*密码确认的“根”@“127.0.0.1”“* EB3EA446C759C9DA93F84FCB56430DBEF051A9DD”GRANT选项;
“CNBO0815”上的所有特权授予。*“根”@“127.0.0.1”GRANT选项;
——授予root@172.16.10. %,
*上的所有特权授予。*“根”@“172.16.10。%“确认密码”* 6 bb4837eb74329105ee4568dda7dc67ed2ca2ad9”;
——授予CNBO@192.168.1. %,
格兰特使用*。*“CNBO”@“192.168.1。%“确认密码”* ABD91BAD4A3448428563952E281015B237310EA8”;
3、在目标服务器上执行脚本
将生成的脚本在目标服务器上执行即可。mysql uname -ppwd & lt; grants.sql
需要注意:
一、目标服务上为非空服务器,已经存在一些账户及权限应考虑会覆盖的问题。
b,如果仅仅需要迁移非根用户,可以在原脚本中添加过滤条件,即user<在“根”。