今回はlocalhost上のmariaDB(mysql)ではなく、別のサーバで稼働するmariaDB(mysql)に接続する際の実施手順について紹介します。

今回実施したサーバ環境は以下となります。
OS : Linux Mint 19.2
DB : mysql  Ver 15.1 Distrib 10.1.41-MariaDB

アクセス権限の設定

まずはDBに外部アクセス用のユーザを作成。
全DBなら以下。

grant all privileges on *.* to 'username'@'%' identified by 'password' with grant option;

特定のDBのみなら以下。

grant all privileges on dbA.* to 'username'@'%' identified by 'password' with grant option;

特定のIPアドレスを指定なら以下のようにIPアドレスを指定か、ローカルネットワークを指定します。

grant all privileges on dbA.* to 'username'@'192.168.x.x' identified by 'password' with grant option;

IPアドレスフィルタの除外

以下ファイルのbind-addressをコメントアウト

$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf 

上記ファイル名出ない場合は以下のファイル

$ sudo vi /etc/mysql/mariadb.conf.d/mysqld.conf 

# でコメントアウトする。

#bind-address           = 127.0.0.1

以上設定でクライアントからはホスト指定することで接続可能となります。

いざ外部接続!!

外部経由で接続する場合、以下のようにホストのIPアドレスを指定します。

mysql -h192.168.1.x -uusername -ppassword

上記で接続できない場合はufwやiptablesを始めとしたファイヤウォールのセキュリティ関連でIPアドレスやポートをブロックしている可能性があり、そちらを許可しないと繋がらないと思います。

UFWのmysql外部アクセス許可方法

UFWでmysqlポートの追加方法例は以下となります。

ufw allow from 192.168.1.0/24 to any port mysql