MySQLで3306ポートを開放

目次

MySQLで3306ポートを開放するための手順


  1. データベース・テーブルへのアクセス権限設定
  2. MySQLへのアクセス制御
  3. MySQLが利用するポート(3306)の開放
  4. ファイアウォールの制限設定

データベース・テーブルへのアクセス権限設定


データベース・テーブルへの外部からのアクセス権限を設定します。

GRANT ALL PRIVILEGES ON *.* TO [user]@'[host]' IDENTIFIED BY '[password]' WITH GRANT OPTION;

制限を設けず、全てのホストからアクセスを認める場合は、[host]を%に設定します。

GRANT ALL PRIVILEGES ON *.* TO [user]@'%' IDENTIFIED BY '[password]' WITH GRANT OPTION;

下記SQLコマンドにて、各ユーザのアクセス可能な元ホストを確認します。

select user, host from mysql.user;

host が「%」になっていると全てのホストからアクセス可能となっています。

MySQLへのアクセス制御


MySQLの設定ファイル my.cnfの bind-addressの設定を確認します。
bind-addressにはアクセス可能なホストのIPを設定します。bind-addressがされていない場合は、アクセス制限がなく全てのIPからのアクセスが可能です。
「bind-address=127.0.0.1」とデフォルトで設定されている場合は、ローカルからのアクセスのみ許容されている状態です。

MySQLが利用するポート(3306)の開放


ファイアウォールの制限設定


下記コマンドにて、linuxのiptablesにて3306ポートが解放されていることを確認します。

iptables -L

又は、iptablesの下記設定ファイルを確認します。

vi /etc/sysconfig/iptables

下記設定があれば、3306ポートが解放されています。

-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

下記コマンドにてiptablesの変更内容を更新します。

service iptables save

下記コマンドにてiptablesの設定を反映します。

service iptables restart

関連記事


外部関連サイト


https://blog.s-giken.net/304.html
mysql server で外部から接続できるユーザを作成する。