基于 SSH 的 MySQL 的 SlashDB 连接字符串

SlashDB connection string for MySQL over SSH

提问人:Hack-R 提问时间:3/10/2016 最后编辑:Victor OlexHack-R 更新时间:9/28/2016 访问量:220

问:

我正在尝试让我的 SlashDB REST API 查询 MySQL 数据库,它必须通过 SSH 连接到该数据库。

连接字符串不成功,我不能说我很惊讶,因为 SlashDB 在其模板中有一个数据库用户名和密码的位置,但没有 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@

mysql rest ssh slashdb

评论


答:

1赞 Victor Olex 6/14/2016 #1

SlashDB 没有内置与 MySQL 的 SSH 连接。但是,有一个解决方法。

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

    ssh -f [电子邮件保护] -L 3307:mysql1.example.com:3306 -N

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

    • 数据库主机:localhost
    • 数据库端口:3307
    • 其他参数同前

Смотритетакже: 通过SSH隧道的MySQL连接 - 如何指定其他MySQL服务器?

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