Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从EC2中的MySQL 5.7到AWS RDS的mysqldump_Mysql_Amazon Web Services_Amazon Ec2_Rds - Fatal编程技术网

从EC2中的MySQL 5.7到AWS RDS的mysqldump

从EC2中的MySQL 5.7到AWS RDS的mysqldump,mysql,amazon-web-services,amazon-ec2,rds,Mysql,Amazon Web Services,Amazon Ec2,Rds,我正在尝试使用以下步骤将数据库从安装在EC2实例中的MySQL 5.7迁移到AWS RDS MySQL 5.7: 关于如何使用两个不同的用户和密码从命令行运行mysqldump,您有什么想法吗?您的管道mysql客户端无法访问stdin,因为它的stdin实际上是mysqldump命令的stdout流。由于不希望在命令行中提供密码,请尝试以下方法 mysql_config_editor set --login-path=local --host=localhost --user=userna

我正在尝试使用以下步骤将数据库从安装在EC2实例中的MySQL 5.7迁移到AWS RDS MySQL 5.7:


关于如何使用两个不同的用户和密码从命令行运行mysqldump,您有什么想法吗?

您的管道mysql客户端无法访问stdin,因为它的stdin实际上是
mysqldump
命令的
stdout
流。由于不希望在命令行中提供密码,请尝试以下方法

mysql_config_editor set --login-path=local --host=localhost --user=username --password
mysql_config_editor set --login-path=remote --host=rds_host --user=rds_user --password
这将在配置文件中创建两个部分,分别命名为
local
remote
(您可以更改名称)。现在:

应该有用

mysql_config_editor set --login-path=local --host=localhost --user=username --password
这将连接到您登录的服务器上运行的本地mysql引擎。在您的情况下,您必须已登录ec2实例

现在要连接到RDS实例(使用不同的用户/密码),可以使用以下命令。您必须在RDS sec组上打开端口3306,ec2 sec组作为源

mysql_config_editor set --login-path=myrdsinstance --host=myrdsinstance.123456789012.us-east-1.rds.amazonaws.com --user=username --password
如果要基于用户id为同一实例创建多个登录路径,则只需相应地更改登录路径id

例如:

mysql_config_editor set --login-path=myrdsinstance-user1                    
   --host=myrdsinstance.123456789012.us-east-1.rds.amazonaws.com --user=user1 --password
mysql_config_editor set --login-path=myrdsinstance-user2
    --host=myrdsinstance.123456789012.us-east-1.rds.amazonaws.com --user=user2 --password

我相信(所以不是答案),如果你只使用
-p
而没有密码,它会问你两次。第一个用于本地数据库,第二个用于远程数据库。还有一个配置文件,您可以使用它指定特定于主机的用户/密码(同样,我认为是这样的,所以不是答案)。谢谢,但这不起作用。另一个“解决方案”是忽略警告。警告!=错误。命令行上的密码唯一不安全的地方是密码在命令行上,因此在shell历史记录中,就像每个命令行上的所有内容一样。另一种选择不是特别安全,因为密码仍然存储在本地。你是对的。我意识到mysqldump命令实际上完成了ok,并且RDS数据库甚至在收到该警告后也被创建了。
mysql_config_editor set --login-path=local --host=localhost --user=username --password
mysql_config_editor set --login-path=myrdsinstance --host=myrdsinstance.123456789012.us-east-1.rds.amazonaws.com --user=username --password
mysql_config_editor set --login-path=myrdsinstance-user1                    
   --host=myrdsinstance.123456789012.us-east-1.rds.amazonaws.com --user=user1 --password
mysql_config_editor set --login-path=myrdsinstance-user2
    --host=myrdsinstance.123456789012.us-east-1.rds.amazonaws.com --user=user2 --password