6

localhost からの接続のみを許可する多数のリモート MySQL サーバーがあります。それらに接続するには、次のことを行います。

ssh host
mysql -uuser -psecret -hhost.myhost.com

emacs では、sql-mysql-mode を使用して、ローカルの MySQL への接続を構成しました。

(setq sql-connection-alist
      '((pool-a
         (sql-product 'mysql)
         (sql-server "localhost")
         (sql-user "user")
         (sql-password "secret")
         (sql-database "")
         (sql-port 3306))
        ))

(defun sql-connect-preset (name)
  "Connect to a predefined SQL connection listed in `sql-connection-alist'"
  (eval `(let ,(cdr (assoc name sql-connection-alist))
    (flet ((sql-get-login (&rest what)))
      (sql-product-interactive sql-product)))))

(defun sql-local ()
  "Connect to the local MySQL server"
  (interactive)
  (sql-connect-preset 'pool-a)
  (delete-other-windows))

(define-key global-map [f10] 'sql-local)

をクリックするたびにF10、MySQL シェルが表示されます。

ssh経由で外部マシンに接続し、そのマシンでmysqlプログラムを使用して、Emacsからどこにでも接続できるように、sql-mysqlを調整することは可能ですか?

4

3 に答える 3

2

「sql-mysql-program」から「および「sql-mysql-options」を参照してください。最初のものを「ssh」にバインドし、2番目のものを「host mysql」にバインドできます。emacsが「sql-mysql-」を挿入しない場合そうでない場合は、「ssh host mysql」を実行するだけのスクリプトを作成し、「sql-mysql-program」をそのスクリプトにポイントする必要があります。

トンネル化された mysql 接続とトンネル化されていない mysql 接続の両方を同時に使用する必要がある場合は、「sql-product-alist」(「tunneled-mysql」など) に新しい要素を追加することを検討してください。

于 2013-06-24T06:56:10.067 に答える