
目次
MySQLで3306ポートを開放するための手順
- データベース・テーブルへのアクセス権限設定
- MySQLへのアクセス制御
- MySQLが利用するポート(3306)の開放
- ファイアウォールの制限設定
データベース・テーブルへのアクセス権限設定
データベース・テーブルへの外部からのアクセス権限を設定します。
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 で外部から接続できるユーザを作成する。