代码之家  ›  专栏  ›  技术社区  ›  Luis

mysqldump从EC2中的MySQL 5.7到AWS RDS

  •  1
  • Luis  · 技术社区  · 8 年前

    我正在尝试使用以下步骤将数据库从安装在EC2实例中的MySQL 5.7迁移到AWS RDS MySQL 5.7: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.SmallExisting.html

    mysqldump -u <local_user> \
    --databases <database_name> \
    --single-transaction \
    --compress \
    --order-by-primary  \
    -p<local_password> | mysql -u <RDS_user> \
        --port=<port_number> \
        --host=<host_name> \
        -p<RDS_password>
    

    运行mysqldump命令时,我收到以下已知警告: “在命令行界面上使用密码可能不安全”。

    我尝试了以下解决方法,但在我的例子中,EC2 DB和AWS RDS有不同的用户/PSD。

    mysql_config_editor set --login-path=local --host=localhost --user=username --password
    

    Suppress warning messages using mysql from within Terminal, but password written in bash script

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

    2 回复  |  直到 8 年前
        1
  •  1
  •   hjpotter92    8 年前

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

    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
    

    这将在配置文件中创建2个部分,名为 local remote (您可以更改名称)。现在:

    mysqldump --login-path=local | mysql --login-path=remote
    

    应该有用

        2
  •  0
  •   Madhukar Mohanraju    8 年前
    mysql_config_editor set --login-path=local --host=localhost --user=username --password
    

    这将连接到您登录的服务器上运行的本地mysql引擎。在您的情况下,您必须已登录到ec2实例。

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

    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