LoginSignup
9
9

More than 5 years have passed since last update.

localhost しか許可していない mysql に HeidiSQL や Workbench でつなぐ

Last updated at Posted at 2016-04-11

localhost しか許可していない mysql に HeidiSQL や Workbench でつなぐ

やりたいこと

  • mysql のユーザはすべて localhost のみ
  • 22, 80, 443 以外のポートは閉じている
  • ssh (root) は繋がる

という状況で Windows から HeidiSQL や Workbench などのビジュアルなソフトで mysql に繋ぎたい。
深淵な理由で localhost 以外の mysql ユーザを作成するのは不可。

まずやったこと

「ssh が繋がるんだからポートフォワードでリモートの 3306 を引っ張りゃよくね?」って思った。

ssh -f -N -L 13306:remote-host:3306 user@remote-host
mysql -h 127.0.0.1 -P 13306
ERROR 1045 (28000): Access denied for user 'user'@'remote-ip' (using password: NO)

フォワードされてるし、 remote-ip は接続先 IP ですがダメでした。
まさに user@locahost しか許可されていないためです。

※ 2016/04/20 追記

コメントで指摘を頂きました。

local
ssh -f -N -L 13306:localhost:3306 user@remote-host
mysql -h 127.0.0.1 -P 13306

で OK です。
私がなにか勘違いしていたみたいです。

※ 追記ここまで

次に試したこと

会社の先輩に「socat で unixドメインソケットを引っ張れば出来る」とアドバイスを貰ったので試してみました。
結論から言えば出来ました。

基本的な流れは下記です。

  1. socat で mysql の unixドメインソケットを適当なポートで listen (ex. 1234)
  2. 1234 は開いていないので ssh でポートフォワード (ex. 2345)
  3. 引っ張った 2345 へ mysql 接続すると リモートの mysql へローカル接続できる

まず、リモートの 1234 を引っ張りつつ ssh 接続します。

local
ssh -L 2345:remote-host:1234 user@remote-host

次にリモートの mysql の unixドメインソケット を 1234 で listen します。

remote
socat TCP-LISTEN:1234,reuseaddr,fork UNIX-CLIENT:/var/lib/mysql/mysql.sock

最後にローカルに戻って 2345 へ mysql 接続します。

local
mysql -h 127.0.0.1 -P 2345

すると接続することが出来ます。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 154
Server version: 5.1.73-log Source distribution

mysql> SELECT user();

+----------------+
| user()         |
+----------------+
| user@localhost |
+----------------+
1 row in set (0.00 sec)

あとはこのホストに向けて HeidiSQL なり Workbench なりで接続すればビジュアルにデータベースをいじることができます。
ただ、上の手順に記述はないですが -g オプションが必要です。

unixドメインソケットでリッスンする系のサービスで色々出来そう。
mysql しか知らないけど…。

9
9
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9