【问题标题】:How Use the Oracle Cloud Infrastructure MYSQL DB and XDev API together?如何结合使用 Oracle 云基础设施 MYSQL DB 和 XDev API?
【发布时间】:2020-06-09 23:36:06
【问题描述】:

所以我在 OCI 上创建了一个 MYSQL DB 并可以通过 SSH 连接到它,我已经设置了所有入口规则、用户等。 我在 host: "....": javascript 代码中的字段中放了什么? (而不是本地主机)。

mysqlx
    .getSession( {

        user: 'user', 
        password: 'password',
        host: 'localhost', 
        port: '33060', 
    })

由于连接设置为 SSH,我是否必须在 OCI 中执行其他任何操作,或者我可以在公共子网设置中将其设置为新的入口规则吗?

感谢您的帮助。

【问题讨论】:

    标签: oracle oracle-cloud-infrastructure mysql-x-devapi


    【解决方案1】:

    OCI 中的答案是使用包含 MYSQL DB 的实例的主机名和提供程序,然后在 OCI 中设置您的 MYSQL 路由器,如下所示:

    第 1 步 - 安装和配置 MySQL 路由器 假设您的 OCI Compute 正在运行 Enterprise Linux Enterprise Linux Server 版本 7。

    1. 通过 SSH 连接到将安装 MySQL 路由器的 OCI 计算

    2. 安装 MySQL 路由器。运行:

      sudo yum -y 安装https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm sudo yum -y 安装 mysql-router

    3. 配置附加到文件 /etc/mysqlrouter/mysqlrouter.conf 的 MySQL 路由器。例如,假设 MDS 私有 IP 为 10.0.0.6,运行:

      sudo tee -a /etc/mysqlrouter/mysqlrouter.conf > /dev/null

      [路由:redirect_xprotocol] 绑定地址 = 本地主机:33060 目的地 = 10.0.0.6:33060 协议 = x routing_strategy=first-available EOF

    4. 启动 MySQL Router 并检查服务是否处于活动状态(正在运行)。运行:

      $ sudo systemctl start mysqlrouter.service $ sudo systemctl status mysqlrouter.service

    5. Compute 实例重启时自动启动 MySQL Router $ sudo systemctl enable mysqlrouter.service

    6. 添加防火墙规则。运行:

      $ sudo firewall-cmd --permanent --add-port=3306/tcp $ sudo firewall-cmd --permanent --add-port=33060/tcp $ sudo firewall-cmd --reload

    感谢 Airton Latori 的协助。

    【讨论】:

      【解决方案2】:

      我不熟悉 OCI 细节,但最终应该有一个您可以连接到的 MySQL 实例(或路由器)的主机名或 IP 地址。而且,假设端点“说”X 协议,这就是您应该为 host 配置属性提供的内容。

      免责声明:我是 MySQL X DevAPI Connector for Node.js 的首席开发人员

      【讨论】: