MySQL上的SlashDB连接字符串通过SSH

时间:2016-03-09 19:52:56

标签: mysql rest ssh slashdb

我试图让我的SlashDB REST API查询MySQL数据库,它必须通过SSH连接。

连接字符串不成功,我不能说我很惊讶,因为SlashDB在其模板中有一个用于DB用户名和密码的位置,但没有SSH / OS的选项用户名和密码。

wizard

如何调整此示例字符串以包含必要且足够的详细信息?

8.8.8.8:3306/somename

这与以下JSON相关联(请注意,您无法直接编辑JSON):

{
    "db_encoding": "utf-8",
    "owners": [
        "admin",
        "user",
        "root"
    ],
    "execute": [
        "admin",
        "user",
        "root"
    ],
    "creator": "admin",
    "read": [
        "admin",
        "user",
        "root"
    ],
    "db_type": "mysql",
    "autoload": true,
    "write": [
        "admin",
        "user",
        "root"
    ],
    "connect_status": "Disconnected",
    "connection": "8.8.8.8:3306/somename",
    "sysuser": {
        "dbuser": "user",
        "dbpass": "pw"
    },
    "db_schema": "somename",
    "offline": true,
    "alternate_key": {},
    "desc": "blah blah blah"
}

由于你可以直接编辑连接字符串,我尝试在user@之前添加,但它没有帮助。

1 个答案:

答案 0 :(得分:1)

SlashDB没有与MySQL内置的SSH连接。但是,有一个工作。

  1. 建立从SlashDB主机到数据库主机的SSH隧道。我们在这个例子中使用本地端口3307。

    ssh -f user@XX.XX.XX.XX -L 3307:mysql1.example.com:3306 -N

  2. 在GUI中配置连接字符串,如下所示:

    • 数据库主机:localhost
    • 数据库端口:3307
    • 以前的其他参数
  3. 另请参阅:MySQL connection over SSH tunnel - how to specify other MySQL server?

    话虽如此,通常避免让MySQL服务器公开但允许公共REST API的模式是将SlashDB安装在与数据库相同的子网中。然后在SlashDB主机的防火墙中打开端口80和443。这也确保了SlashDB到MySQL连接的最大性能。