他の PC から MySQL データベースに接続できるようにするための設定 (Windows 版)
動作確認環境
- MySQL
-
- MySQL 8.4
- Windows
-
- Windows Server 2022
動作必須環境
- MySQL
-
- MySQL 8.4 以降
- 過去のバージョンでも動作可能です
- Windows
-
- Windows 11
- Windows 10
- Windows Server
-
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
前提条件
- 接続元とは別 PC に MySQL がインストールされていること
ファイアウォールの確認
MySQL ではインストール時に以下の画面でファイアウォールが設定されるので特に追加設定する必要はありません。
念のためファイアウォールの設定を確認します。Windows のバージョンによって表示するまでの操作が異なるのでスタートメニューで「ファイアウォール」と入力して表示させます。
左のメニューから「詳細設定」を選択します。
左から「受信の規則」を選択すると一覧に「Port 3306」と「Port 33060」が追加されていることが分かります。これが MySQL で追加されたものです。
設定ファイルの確認
以前は設定ファイルから bind-address
を変更する必要があったのですが、現バージョンではこの項目はないので特に設定を変更する必要はありません。
Windows での MySQL の設定ファイルは以下の場所にあります。
ProgramData
フォルダは隠しフォルダになっているのでパスをエクスプローラーのアドレスバーに直接入力するか、隠しフォルダを見えるように設定してください。
C:\ProgramData\MySQL\MySQL Server 8.4\my.ini
アカウントのアクセス権限設定
MySQL データベースにログインするにはアカウントを指定する必要があるのですが、デフォルトでは全てのアカウントはローカルからしかアクセスできません。 そのため特定のアカウントに対して外部からアクセスできるように設定する必要があります。
アカウントについては最初から root
アカウントがありますが root
アカウントはほぼ全ての権限を所有しているため外部からアクセスできるようにするのはセキュリティ的に好ましくありません。
ですのでここでは別途 test_user
というアカウントを作成してそのアカウントで接続するようにします。
アカウントの作成方法については以下の Tips を参照してください。
アカウントのアクセス権限設定 (GUI での操作)
スタートメニューから「MySQL > MySQL Workbench」を選択して起動します。
起動したら左下にデフォルトのインスタンスがあるので選択します。
パスワードを保存していない場合パスワードを求められるので root アカウントでログインします。
左の Navigator メニューから Administration タブを選択している状態で「Users and Privileges」を選択します。
一覧から権限を変更するアカウントを選択します。ここでは test_user
アカウントを選択しています。
アカウントを作成していない場合は「Add Account」から追加してください。
Limit to Hosts Matching
の項目があり、ここが localhost
になっている場合は localhost からしかアクセスできないことを意味します。
この値に接続許可する PC の IP アドレスを設定します。
普通に IP アドレスを入力すると1台だけ対象になりますが、範囲選択したい場合はワイルドカード「%」が使用できるので「192.168.0.%」と指定すれば「192.168.0.0」~「192.168.0.255」を許可することになります。
IPv6 で接続される場合 IPv4 の定義では接続できないので注意してください。
入力したら右下の「Apply」ボタンをクリックして適用することができます。
User 一覧も変更されていることを確認できます。
必要に応じてアカウントに対する MySQL やスキーマへのアクセス権限を設定してください。
アカウントのアクセス権限設定 (コマンドでの操作)
スタートメニューから「MySQL > MySQL 8.4 Command Line Client」を選択して実行します。
パスワードを求められるので root のパスワードを入力します。
以下のコマンドを入力するとアカウントの一覧とホストを参照できます。
select user,host from mysql.user;
アカウントを作成するには以下のコマンドを入力します。 「アクセス許可ホスト」に外部から接続させたい PC の IP アドレスを入力します。 ワイルドカード「%」が使用できるので、全てからアクセス許可できるようにするには「%」を、「192.168.0.0」~「192.168.0.255」を許可したい場合は「192.168.0.%」のように入力します。 「%」を入れる場合はシングルクォーテーションで囲って下さい。 IPv6 で接続される場合 IPv4 の定義では接続できないので注意してください。
create user '<ユーザー名>'@'<アクセス許可ホスト>' identified by '<パスワード>';
入力例
create user 'test_user2'@'192.168.0.%' identified by 'xxxxxxxx';
既存のアカウントのホスト名を変更する場合は以下のようなコマンドを入力します。
RENAME USER '現在のユーザー名'@'現在のホスト名' to '新ユーザー名'@'新ホスト名';
入力例
RENAME USER 'test_user2'@'192.168.0.%' to 'test_user2'@'192.168.%.%';
必要に応じてアカウントに対する MySQL やスキーマへのアクセス権限を設定してください。
接続確認
外部から接続できるツールであれば何でもいいですが、今回は MySQL の公式クライアントである Workbench で接続してみます。
他の PC にインストールしている Workbench を起動します。
MySQL Connection を追加します。
接続に必要な設定を入力します。DNS 名でもいいですが、Workbench だとなぜか接続できなかったので IP アドレスで指定しています。
接続確認を行い成功すれば設定は正常に行われていると判断出来ます。