Linux(CentOS)のMySQLへ外部接続する

MySQL データベース
この記事は約4分で読めます。

※当ブログではアフィリエイト広告を利用しています。

Linux(CentOS)のMySQLクライアントツールはコマンドライン操作になるため、MySQLへ外部接続できるように設定し、使いやすいツールを使用して運用する方が良い。

そのMySQLへ外部接続する設定方法について。

なお、今回のバージョンは以下です。

  • CentOS-6.4-i386
  • MySQL Community Server 5.6.13

ちなみに、MySQLのインストールはこちらの記事参照⇒LAMP構築-Linux(CentOS)へRPMパッケージからMySQLをインストール

現在の設定の確認

まずは、現在の設定を確認する。

ユーザー一覧を表示してみると、どうやらMySQLは設定ファイルで設定を行わず、権限を付与する形で設定を行うようだ。

#MySQLへログイン
$ mysql -u root -pパスワード

#データベース一覧表示
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
+--------------------+
4 rows in set (0.07 sec)

#ユーザー一覧表示
mysql> SELECT user,host FROM mysql.user;
+--------+-----------+
| user   | host      |
+--------+-----------+
| root   | 127.0.0.1 |
| root   | ::1       |
| root   | localhost |
| wpuser | localhost |
+--------+-----------+
4 rows in set (0.00 sec)

外部ホストからの権限を付与

続いて、「GRANT」文で権限を付与する。

「wordpress.*」の部分で、権限を適用するレベルを指定している。

今回の場合は、データベース「wordpress」の全てのオブジェクトに対して権限を適用している。

「wpuser@”192.168.11.%”」の部分で、権限を適用するユーザー・接続元を指定している。

今回の場合は、ユーザー「wpuser」で、接続元はワイルドカードを使用し、「192.168.11.%」からに対して権限を適用している。

#権限付与
mysql> GRANT ALL ON wordpress.* TO wpuser@"192.168.11.%" identified by 'パスワード' WITH GRANT OPTION;
Query OK, 0 rows affected (0.62 sec)

#権限変更を反映
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)

#ユーザー一覧表示
mysql> SELECT user,host FROM mysql.user;
+--------+--------------+
| user   | host         |
+--------+--------------+
| root   | 127.0.0.1    |
| wpuser | 192.168.11.% |
| root   | ::1          |
| root   | localhost    |
| wpuser | localhost    |
+--------+--------------+
5 rows in set (0.00 sec)

#MySQLからログアウト
mysql> exit
Bye

iptablesで3306番ポートを開放

最後に、iptablesで「3306」を開放してやる。

#iptablesの設定を編集
$ vi /etc/sysconfig/iptables

# SSH
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# HTTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

#iptablesの再起動
$ /etc/rc.d/init.d/iptables restart

クライアントからMySQLへ接続

これまでの設定で、以下のコマンドで無事にクライアントからMySQLへ接続できました。

#MySQLへ接続
$ mysql -u root -pパスワード -h ホスト名

参考サイト

MySQL/ユーザとDB作成 – MinacoWiki

権限の設定(GRANT文) – ユーザーの作成 – MySQLの使い方

コメント

タイトルとURLをコピーしました