1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WindowsのSQLクライアントツール→LinuxのMySQLのリモート接続を確立する

Posted at

経緯

  • 学習用にOSなしの中古PCを購入してLinux(Ubuntu)をインストールした
  • 何となくWindows端末→Linux端末にリモート接続できるようにした
  • ある時、MySQLの環境構築を実施
  • SQLで便利な機能がないかを発掘していたときがあった
  • データベースやテーブルが徐々に増えたときに「そういえばクライアントツール(以下、GUIツールと記述)を使っていなかったな」とふと思う
  • 「Windows端末のGUIツール→Linux端末のMySQLにリモート接続」って頑張ればできるんじゃない?と興味が湧いたので実現に向け行動を開始

GUIツールの選定

外せない条件

無料で使用できること

候補

候補は以下の3つのどれか

  • Beekeeper Studio
  • A5:SQL Mk-2
  • DBeaver

個人的には「Beekeeper Studio」「DBeaver」の二択

好みなのは「Beekeeper Studio」
使いやすそうなのは「DBeaver」
そんな印象

ツール決定:DBeaver

決め手は2つ

  • ER図が見れる
  • 画面の雰囲気がどことなく「SQL Server」に似ていて親しみを覚えた

各種設定について

登場するもの

  • PC1: Linux(Ubuntu)
    • リモート接続される側の端末
    • MySQL環境はこちらにある
    • バージョン: 22.04 LTS
  • PC2: Windows
    • リモート接続する側の端末
    • GUIツールの「DBeaver」はこちらにインストールされている

やりたいこと

「PC2:DBeaver→PC1:MySQL」のリモート接続を確立させて、DBeaverの画面上でDB操作を行える状態にする

Linux端末の設定

するべきことはこちら

  • IPアドレスを把握する
  • MySQLのポート番号を把握する
  • MySQLの設定ファイルを編集
  • リモート接続用のMySQLユーザを追加

IPアドレスを把握する

DBeaverで接続設定するときに必要になる

ip -4 a
このコマンドを実行すれば確認できる

MySQLのポート番号を把握する

基本的には「3306」だと思うが例外もあり得るので調べ方を1つ記載

DB接続したあとに
SHOW VARIABLES LIKE 'port'
このコマンドを実行するとポート番号が可能

-- 実行例
mysql> SHOW VARIABLES LIKE 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.01 sec)

MySQLの設定ファイルを編集

MySQL接続を許可するIPアドレスを管理している項目があるのでそれを編集する
※ちなみに筆者はここに辿り着くまでに結構遠回りしてしまった

対象ファイル: /etc/mysql/mysql.conf.d/mysqld.cnf
変更箇所: bind-address = xxx.xxx.xxx.xxx

初期設定では「bind-address = 127.0.0.1」となっていて、自端末からの接続のみ許可する状態

これを他のIPアドレスからの接続も許可するように変更する

# ファイル編集
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 変更前
bind-address = 127.0.0.1
# 変更後
bind-address = 0.0.0.0

今回はIPアドレスを「0.0.0.0」に変えた
どこからの接続でも許可するという意味合い

IPアドレスの範囲を指定することもできるので使用用途に合わせて適宜設定値は変えるべき

リモート接続用のMySQLユーザを追加

DBeaverでMySQL接続するときに使うユーザを追加する必要がある

ユーザ追加権限のあるユーザ(rootとか)でMySQLに接続して

  1. CREATE USER '[user]'@'%' IDENTIFIED BY '[password]'
  2. GRANT SELECT, INSERT, DELETE, UPDATE ON [databese].* TO '[user]'@'%';

このコマンドを順番に実行する
リモート接続用のこのユーザには全権限は与えず最低限の権限を付与した

@以降の'%'は任意のIPアドレスを意味する
このユーザを利用すれば外部からのMySQLも可能となる

これでLinux端末側の設定は終わり

Windows端末の設定

するべきことはこちら

  • DBeaverの各種設定

こちらは接続する側なのでGUIツールの設定だけで良い

DBeaverの各種設定

  1. DBeaverを起動
  2. 画面上部の「データベース」を開く
  3. 「新しい接続」を選択
  4. 「MySQL」を選択して次へ
  5. 接続設定画面
    Server Host: 「Linux端末の設定」で確認したIPアドレス
    Port: 「Linux端末の設定」で確認したポート番号
    Database: 接続対象のデータベース名
    ユーザ名: 「Linux端末の設定」で追加したユーザ
    パスワード: 「Linux端末の設定」で追加したユーザのパスワード
    その他: 初期値のままでOK
  6. 入力が終わったら画面左下の「テスト接続」を押下
  7. 接続成功すれば設定は完了

これで設定はおわり

まとめ

「WindowsのSQLクライアントツール→LinuxのMySQLのリモート接続を確立する」という目的で環境設定を進めた。

リモート接続の設定が上手くいってDBeaverでテーブルやレコードが表示されたとき、
「おお!」と少しテンションが上がったのはここだけの話。

この経験を活かす機会はあまりなさそうだが、知ってて損はない知識だと思う。

1
2
1

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?