LoginSignup
0
0

More than 1 year has passed since last update.

Ubuntu22.04 MySQLにSSHトンネルを使ってリモート接続する

Last updated at Posted at 2022-08-08

概要

リモートのUbuntu22.04のMySQLに接続してローカル側からSQLを実行する必要がありました。ポート3306を開けるとセキュリティ的によくないので、SSHトンネルを使ってリモート接続できるようにします。MySQLは8.0.30、作業用PCはWinodws10 Pro、TeraTerm4.105、ODBC8.0.18です。事前にリモートのUbuntuにMySQLインストールと、SSH接続できていることが前提です。

image.png

手順1 MySQLのユーザを追加してテスト用DBを作成

SSHトンネルを使うため、外部ホストからの接続の扱いにはならないので、接続元はlocalhostでユーザを作成します。ユーザ名はwindowsにします。テスト用のDBも作成しておきます。

$ sudo mysql -u root
[sudo] password for lustm5: (Ubuntuのsudoパスワードを入力)
mysql> CREATE USER 'windows'@'localhost' IDENTIFIED BY 'password';
mysql> select user, host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
| windows          | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

テスト用DBのtestを作成します。

mysql> create database test;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)

ユーザwindowsにテスト用DBのtestの全テーブルに対してselect・insert・update・delete権限を与えます。

mysql> grant select,insert,update,delete on test.* to 'windows'@'localhost';
mysql> show grants for 'windows'@'localhost';
+---------------------------------------------------------------------------+
| Grants for windows@localhost                                              |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `windows`@`localhost`                               |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `test`.* TO `windows`@`localhost` |
+---------------------------------------------------------------------------+
2 rows in set (0.00 sec)

手順2 TeraTermでポート転送設定

リモートのUbuntuにSSH接続しておきます。
image.png
設定からSSH転送をクリックします。
image.png
追加を押します。
image.png
設定してOKを押します。
image.png
OKを押します。
image.png

手順3 接続確認

作業用PCにMySQLConnectorODBCをインストールしていたので、こちらで確認します。TeraTermでポート転送しているので、サーバIPは127.0.0.1、ポートは57575に設定します。手順1で設定したユーザ、パスワード、DB名も設定します、DataSourceNameは適当で問題ありません。mysqlクライアントを使う場合は、-Pオプションで57575を指定すれば動作します。
image.png
大丈夫でした。
image.png

0
0
0

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
0
0