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 ホスト名
コメント