Emacs, jak używać tunelu ssh, aby połączyć się ze zdalnym MySQL
Mam kilka zdalnych serwerów MySQL, które zezwalają na połączenie tylko z lokalnego hosta. Aby połączyć się z nimi, wykonuję następujące czynności:
ssh host
mysql -uuser -psecret -hhost.myhost.com
W emacs skonfigurowałem połączenie z lokalnym MySQL, używając trybu sql-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)
Więc za każdym razem, gdy klikamF10
, Dostaję powłokę MySQL.
Czy jest możliwe dostrojenie sql-mysql, więc połączyłem się z zewnętrzną maszyną przez ssh i użyłem programu mysql na tej maszynie, więc mógłbym połączyć się z Emacsem do każdego miejsca?