
# 如何将源数据库的用户与权限导出，再导入到目标数据库
1. 选择一台可以访问源数据库的虚拟机。
2. 执行如下命令后，输入密码并回车，将源库用户导出到临时文件"users.sql"中。 
   **mysql** **-h** *'host'* **-u** *'user'* **-p**-N $@ -e "SELECT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM mysql.user" \> /tmp/users.sql
   其中的*'host'* 替换为源数据库的访问IP地址，*'user'*替换为源数据库的用户名。
   
   
3. 执行如下命令，将源数据库中原有用户的授权信息导出到文件"grants.sql"中**。**
   
   **mysql** **-h** *'host'* **-u** *'user'* **-p** -N $@ -e**"**source /tmp/users.sql" \> /tmp/grants.sql
   **sed -i** 's/$/;/g' /tmp/grants.sql
   其中的*'host'* 替换为源数据库的访问IP地址，*'user'*替换为源数据库的用户名。
   
   
4. 命令运行成功后，打开"grants.sql"文件可以看到类似以下的结果。
   
   ```
   -- Grants for root@%
   GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
   -- Grants for testt@%
   GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'testt'@'%';
   -- Grants for debian-sys-maint@localhost 
   GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' WITH GRANT OPTION;
   -- Grants for mysql.session@localhost
   GRANT SUPER ON *.* TO 'mysql.session'@'localhost'; 
   GRANT SELECT ON `performance_schema`.* TO 'mysql.session'@'localhost';
   GRANT SELECT ON `mysql`.`user` TO 'mysql.session'@'localhost';
   -- Grants for mysql.sys@localhost
   GRANT USAGE ON *.* TO 'mysql.sys'@'localhost'; 
   GRANT TRIGGER ON `sys`.* TO 'mysql.sys'@'localhost'; 
   GRANT SELECT ON `sys`.`sys_config` TO 'mysql.sys'@'localhost';
   -- Grants for root@localhost
   GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; 
   GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION;
   ```
   
   
5. 在[4]显示的结果中，可以看到源数据库中所有的用户以及对应的权限，请选择所有需要的用户，逐个添加到本云关系型数据库MySQL中，具体操作请参考《关系型数据库用户指南》中的"[创建账号](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0009.html)"章节。
 
