2026年8月4日

2026年8月4日

MySQLにリモートから接続する方法

はじめに

MySQLデータベースは、ウェブアプリケーションやソフトウェア開発において広く使用されています。しかし、デフォルトではローカルのホストからしか接続できず、リモートマシンからは接続できない設定になっています。この記事では、MySQLサーバーにリモートからのアクセスを許可する方法について詳しく説明します。

症状・背景

MySQLデータベースにリモート接続が必要になる主な場面:

  • データベースのバックアップや復元作業
  • クライアントがサーバーと同じネットワーク環境にいない場合
  • 他の開発者が遠隔地からアクセスする必要がある場合
  • 安全性を確保しつつ、柔軟なアクセス設定をしたい場合

手順・設定方法

ステップ1: MySQLのリモート接続を有効にする

# ユーザー権限テーブルの情報を取得します。
mysql -u root -p

# mysql> USE mysql;
# mysql> SELECT Host, User FROM user;

# すべてのIPアドレスからのアクセスを許可するため、次のコマンドを実行します。
# 特定のIPアドレスのみを許可したい場合は、「%」をそのIPアドレスに置き換えてください。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

# データベースサーバーの設定ファイルを編集します(通常は/etc/my.cnf)。
# bind-address行に、MySQLがリッスンするIPアドレスを指定します。
vi /etc/mysql/my.cnf

# MySQLサービスを再起動して変更を有効化します。
sudo systemctl restart mysql

ステップ2: ファイアウォール設定の調整

# 現在のファイアウォールルールを確認します。
sudo ufw status

# MySQLへのアクセスポート(通常は3306)を開きます。
sudo ufw allow 3306/tcp

# 変更を保存して再起動します。
sudo systemctl restart ufw

ステップ3: 安全性の強化

# MySQLのリモートアクセスが許可された後、セキュリティを強化するための以下の手順を行います。

# ファイアウォールで特定のIPアドレスからのみアクセスを許可します。
sudo ufw allow from 192.168.0.1 to any port 3306

# MySQLのrootユーザーにリモートアクセスを禁止し、代替ユーザーを作成します。
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' IDENTIFIED BY 'securepassword';
FLUSH PRIVILEGES;

# 設定ファイルでrootユーザーからのリモート接続を無効化します。
vi /etc/mysql/my.cnf

# [mysqld]セクションに次の行を追加:
# bind-address = 127.0.0.1

ステップ4: リモートからMySQLサーバーへの接続テスト

# MySQLクライアントを使用してリモートからの接続を試みます。
mysql -u newuser -h server-ip-address -p

注意事項

  • デフォルトの設定では、MySQLはlocalhostでのみリッスンしています。これを変更するには、bind-addressオプションを使用します。
  • リモートアクセスを有効にする前に、必ずユーザー権限とセキュリティポリシーを確認してください。
  • MySQLサーバーへの接続は、データの機密性や整合性を保護するために強力なパスワードを使用することを強く推奨します。
  • ファイアウォール設定が適切に調整されていることを確認し、非必要となるIPアドレスからのアクセスをブロックしてください。

まとめ

1. ユーザー権限の設定: 特定のユーザーに対してリモート接続用のパスワードと特権を割り当てます。

2. bind-addressの変更: MySQLがリッスンするIPアドレスを適切に設定します。

3. ファイアウォールの調整: 必要なTCPポートを開き、セキュリティポリシーに基づいてアクセス制限を行います。

4. 接続テスト: リモートマシンからMySQLサーバーへの接続が確立できることを確認します。

5. 安全な実装: セキュアなパスワードの使用と、特定IPからのみの接続許可を検討する。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ