我试图让我的SlashDB REST API查询MySQL数据库,它必须通过SSH连接。
连接字符串不成功,我不能说我很惊讶,因为SlashDB在其模板中有一个用于DB用户名和密码的位置,但没有SSH / OS的选项用户名和密码。
如何调整此示例字符串以包含必要且足够的详细信息?
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@
之前添加,但它没有帮助。
答案 0 :(得分:1)
SlashDB没有与MySQL内置的SSH连接。但是,有一个工作。
建立从SlashDB主机到数据库主机的SSH隧道。我们在这个例子中使用本地端口3307。
ssh -f user@XX.XX.XX.XX -L 3307:mysql1.example.com:3306 -N
在GUI中配置连接字符串,如下所示:
另请参阅:MySQL connection over SSH tunnel - how to specify other MySQL server?
话虽如此,通常避免让MySQL服务器公开但允许公共REST API的模式是将SlashDB安装在与数据库相同的子网中。然后在SlashDB主机的防火墙中打开端口80和443。这也确保了SlashDB到MySQL连接的最大性能。