繁体   English   中英

Amazon RDS-将具有用户凭证的MySql数据库从EC2迁移到RDS

[英]Amazon RDS - Migrating MySql Databases with User Credentials from EC2 to RDS

我在托管Web应用程序的EC2实例上设置了LAMP。 当新公司在Web应用程序上注册时,它将为该公司创建一个新的mysql数据库,一个新的mysql用户,并将该用户分配给该数据库,以便每个公司都有自己的单独数据库。

我们现在计划迁移到RDS,我需要将所有具有相应mysql用户帐户的公司数据库从EC2迁移到RDS。 我该如何实现? 这有可能吗? 我知道我可以通过mysqldump迁移数据库,但是如何为数据库转移mysql用户呢?

我发现这种将用户从ec2或其他实例迁移到RDS的方法可能是最简单的移动用户帐户的方法。 然后使用pt-show-grants从用户那里获得授权。 适当地更新where子句以排除任何您不想迁移的内容,例如您的AWS实例中可能已经存在的root用户。

SELECT CONCAT('CREATE USER ', '`',u.User,'`', '@','`', u.Host,'`', ' IDENTIFIED BY PASSWORD ','''', u.Password,'''',';' ) FROM mysql.user u WHERE u.is_role = 'N' and u.plugin <> 'unix_socket' and user <> 'root';

如下使用mysqldump,将以分隔格式提取所有表SQL和数据,以允许并行数据库导入。此格式使用的格式允许将每个数据库与每个表的SQL文件和txt文件一起转储到其自己的文件夹中。 根据Amazon https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html的建议,这是从EC2实例上的从属服务器运行的。 我们使用Percona Xtrabackup迁移新副本以设置从服务器,从而使从服务器进入AWS的方法有所不同

mysqldump     --tab=/data/mysql/dump/rds/trash    --fields-terminated-by '|-|'     --fields-enclosed-by '"'     --lines-terminated-by 0x0d0a     trash     --master-data=2     --single-transaction     --order-by-primary --routines=0 --triggers=0 --events=0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM