MySQL Server5.7に外部から接続する

elementaryOS How To Linux MySQL Server

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

今回実施したサーバ環境は以下となります。
OS : Linux elementaryOS 5.1
DB : mysql  Server 5.7

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

$ vi /etc/mysql/mysql.conf.d/mysqld.cnf

以下の箇所をコメントアウトして保存します。

# bind-address = 127.0.0.1

アクセス権限の付与

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

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

特定のDBのみなら以下。

grant all privileges on [DB名].* 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;

以上設定でクライアントからはホスト指定することで接続可能となります。
上記で接続できない場合、理由としてはufwやiptablesを始めとしたファイヤウォールのセキュリティ関連でIPアドレスやポートをブロックしていると繋がらないと思います。

いざ外部接続!!

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

mysql -h192.168.x.x -uusername -ppassword

尚、mariaDBの場合は以下。
若干コンフィグファイルの位置が違いますが行うことは基本的に同一です。