1

我正在扩展到使用 emacssql-mode来处理我的工作中的一些数据库。其中一些数据库不能直接从我的工作站访问 - 我需要先 ssh 到网关服务器,然后才能连接到它们(即,mysql -h 'foo_host' -u 'foo_user' --password='double_foo' -D foo_db在网关服务器上的终端会话中工作,但直接在我的机器上运行时不起作用)。我在 EmacsWiki 和 Customize 界面上搜索sql-mode了一下,但我找不到内置的方式来表示“对于与 Foo 数据库的连接,您需要使用主机 Bar 作为代理”。有没有办法告诉sql-mode这样做,或者我是否仅限于通过~/.ssh/config使用特定于 foo-db 的名称和适当的 ProxyCommand 调用创建一个条目来破解它?

4

1 回答 1

4

我不认为有。但是破解 sql.el 来支持这一点应该是相当容易的(通过引入一个新的连接参数“sql-remote”)。与此同时,您必须以某种方式手动切换到网关的“目录”,例如

M-x cd /ssh:gateway.com: RET

或来自 lisp

(let ((default-directory "/ssh:gateway.com:"))
  (sql-connect "ssh-hop-connection"))
于 2012-09-20T13:56:26.357 回答