【问题标题】:Figuring out local port used with TypeORM找出与 TypeORM 一起使用的本地端口
【发布时间】:2020-01-26 06:30:11
【问题描述】:

我正在尝试创建一个 SSH 隧道来访问 VPC(Aurora 无服务器变体)中的 MySQL 数据库,并且或多或少地遵循了类似于 here 描述的方法。我已经设置了一个 jumpbox(一个 EC2 实例),我可以通过 ssh 进入它。但是,我正在努力让本地端口转发工作,因为我似乎无法弄清楚我的命令使用的本地端口。我使用的 SSH 命令与此类似:

ssh -N -L ssh_localPort:rdsHost:rds_remotePort user@remoteHost -i ~/path/to/key

我使用typeORM 创建和运行数据库迁移脚本,命令格式如下:

ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:run -c database_name

该数据库的配置如下所示:

{
    "name": "database_name",
    "type": "mysql",
    "host": "host_name",
    "port": 3306,
    "username": "user",
    "password": "password",
    "database": "database_name",
    "entities": ["models/database_name/*.*"],
    "migrationsTableName": "migration",
    "migrations": ["migration/database_name/*.ts"],
    "cli": {
        "migrationsDir": "migration/database_name"
    }
}

我觉得除了本地港口外,我拥有所有的东西。 TypeOrm 设置用于与数据库通信的端口,因此我假设可以通过 ts-node 显式设置端口,但找不到允许这样做的选项。

是否有人对如何检索本地端口或明确设置有任何建议?

【问题讨论】:

    标签: amazon-web-services typeorm ssh-tunnel


    【解决方案1】:

    我在处理这个问题时有点紧张,没有意识到两件事:

    1. 来自本地主机的流量将被转发到指定端口上的跳转框
    2. 本地端口在数据库配置文件中设置

    我将配置文件更新为以下内容:

    {
        ...
        "host": "localhost",
        "port": ssh_local_port,
        "username": "rds_user",
        "password": "rds_password",
        ...
    }
    

    这足以让我远程连接!

    【讨论】:

      猜你喜欢
      • 2016-03-01
      • 2014-08-12
      • 2014-08-30
      • 2018-01-23
      • 2019-11-21
      • 1970-01-01
      • 2022-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多