外部からMariaDbにアクセスする(1)
データベースの設定

2021年5月11日

どもです。

今回は、Linux上のMariaDbにWindowsからアクセスしてデータを取得できるようにする方法について書きます。
なお、LinuxはVM(VirtualBox)上に構築しています。

1.環境

今回の記事は、以下の環境で行った作業について書きます。

開発環境(H/W)

H/W 構成品
CPU Intel(R) Core i7-8700 CPU 3.20GHz
開発環境(S/W)
S/W バージョン
OS Windows10 Pro (Ver.1903)
IDE VisualStudioCommunity2019 Ver.16.7.3
VM VirtualBox 5.2.20
ゲストOS Raspbian(Debian Buster)
データベース MySql Ver 15.1 Distri 10.3.22-MariaDB

なお、VM(VirtualBox)上にゲストOS(Raspbian)、およびデータベース(MariaDb)をインストールする手順については、下記を参照してください。
IoT開発(6) RaspberryPiをIoTゲートウェイにする(I) VM上に開発環境を構築
IoT開発(7) RaspberryPiをIoTゲートウェイにする(II) VM上の開発環境にWEBサーバーをインストール
IoT開発(9) RaspberryPiをIoTゲートウェイにする(III) MariaDBのセットアップ
今回のエントリでは、これらのエントリで作成した環境を前提にして、作業を進めています。

2.MariaDbの設定

まず、データベースの設定を行います。
設定する内容は、「外部からのアクセスの許可」になります。
外部からのアクセスを許可するために編集するファイルとその内容、及び実行すべきコマンドを書きます。

2.1.ファイルの編集

MariaDbの設定ファイルを編集します。
設定するファイルは、

			/etc/mysql/mariadb.conf.d/50-server.cnf

です。
編集する箇所は、およそ28行目付近です。

bind-address = 127.0.0.1

という行の先頭に「#」を挿入して、コメントアウトします。
編集後の行は、

#bind-address = 127.0.0.1

となります。

2.2.MariaDbの再起動

次のコマンドを実行して、MariaDbを再起動します。

service mariadb restart

これで、MariaDbの設定は完了です。

3.ユーザの追加

次は、データベースの設定です。
データベースの設定は、以下の手順/順番でコマンドを実行します。

  1. ユーザの追加
  2. 追加したユーザのアクセス権の設定
  3. 追加したユーザのパスワードの設定

基本的には、IoT開発(9) RaspberryPiをIoTゲートウェイにする(III) MariaDBのセットアップ で行った内容と同じです。
念のためも兼ねて、ここで再掲しておきます。

3.1.ユーザの追加

まず、外部からアクセスする際に使用するユーザを追加します。
ココでは、以下のコマンドを実行します。

CREATE USER 'WIN_HOST'@'xxx.xxx.xxx.xxx' identified by 'WIN_HOST';

上記コマンドのうち、「WIN_HOST」は実際のユーザ名に変更して下さい。
「xxx.xxx.xxx.xxx」には、ユーザ名「WIN_HOST」のIPアドレスを設定します。
なお、IPアドレスの設定では、「%」をワイルドカードのように使用できます。
例えば、ネットワークアドレスが「192.168.11」のIPアドレスからのアクセスを許容する場合は、次のような設定になります。

CREATE USER 'WIN_HOST'@'192.168.11.%' identified by 'WIN_HOST';

3.2.追加したユーザのアクセス権の設定

追加したユーザがアクセスできるデータベース、およびデータベース内のテーブルを指定します。
以下のコマンドを実行します。

GRANT ALL on sampleDb.* to 'WIN_HOST'@'xxx.xxx.xxx.xxx';

このコマンドでは、「sampleDb」のすべてのデータベースに対して、全ての処理(読み出し/書き込み/更新/削除)の実行権限を与えています。
実行する処理を制限する場合には「ALL」の部分を、それぞれ変更します。
また、アクセスするテーブルを制限する場合には、「sampleDb.*」の「*」を、アクセスを許容するテーブルの名前に変更します。

3.3.パスワードの設定

次に、パスワードを設定します。
データベースにWindowsからアクセスする際には、パスワードの設定は必須なります。
実行するコマンドは、以下になります。

SET PASSWORD FOR 'WIN_HOST'@'xxx.xxx.xxx.xxx'=password('PASSWORD');

実際のパスワードを、「’PASSWORD’」の部分に設定します。

コレで、データベースの設定が完了です。

4.まとめ

これで、サーバ/MariaDb側の設定は完了です。
次は、今回設定した内容を用いて、ホストOSのWindowsからMariaDbにアクセスしてみます。

ではっ!