MariaDBを外部サーバからアクセスできるように設定する。
MariaDBは前回導入しましたが、外部からアクセスできるように設定を行います。
外部とは、同一ネットワーク内のサーバからのみアクセスを許可します。全公開するとセキュリティを考慮する必要が生じますので、同一ネットワーク内としています。
環境
CentOS 7.4
MariaDB 10.1
作業項目
- ファイアウォールでMariaDBのサービスを許可する。
- MariaDB内に外部からアクセスを許可するユーザを作成する。
- MariaDBの設定を確認・調整する。
ファイアウォール設定
ファイアウォールにMariaDBのアクセスを許可します。
以下のコマンドで設定します。
1 2 3 |
# firewall-cmd --permanent --add-service=mysql # systemctl stop firewalld.service # systemctl start firewalld.service |
firewalldの再起動は以下のコマンドでもOK!
1 |
# systemctl reload firewalld.service |
これでfirewalldにmysqlのサービスが許可されました。
mysqlとしましたが、MariaDBは内部にmysqlを含んでいると考えてください。そして、mysqlが許可されればMariaDBへの許可が済んだことになります。
MariaDB内に外部からアクセスを許可するユーザを作成する。
今回は、内部ネットワークなのでrootユーザと同じレベルで作成します。
1 2 3 4 5 6 7 8 9 10 11 12 |
# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 520 Server version: 10.1.31-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO root@"10.123.123.%" IDENTIFIED BY 'password' WITH GRANT OPTION; MariaDB [(none)]> FLUSH PRIVILEGES; |
前回インストールしたMariaDBであれば、これだけでOKのはずです。
私が少し躓いたのは、間に物理的なファイアウォールやUTMを配したネットワークを経由した際に、そのハードルを越えるために設定を施す必要が生じたのですが、同一ネットワーク内であれば、ルータ代わりにUTMを使っている様な下手なことをしていなければこれでつながるはずです。
MariaDBの設定を確認・調整する。
基本的には必要ありませんが、/etc/my.confや/etc/my.conf.d/で設定しているconfファイルで、bind-addressを指定している場合には、その設定を見直す必要があります。
bind-addressで指定が行われている場合、外部からアクセスするアクセス元のIPアドレスを確認して登録します。
対象ファイルは
/etc/my.conf
それ以外は以下の様に確認しました。
1 2 |
# cd /etc/my.conf.d/ # grep bind-address *.conf |
これで何か設定が行われていれば、以下の様に接続元のIPアドレスを追加します。
1 |
bind-address = 10.123.123.8 |
こんな感じです。
以上で完了です。
最後に確認
最後に確認方法ですが・・・・
外部のマシンから以下のコマンドを実行します。
1 |
# mysql -h MariaDBの設置されたホスト名もしくはIPアドレス -u root -p |
これでアクセスできない場合には、もう一度設定をみなしましょう。
それでも接続できない場合は、ネットワークに問題があるのかも知れません。ネットワーク管理者に相談してみるのも方法かと思います。