GCPのファイアウォール

GCEにインストールしたMariaDBに、その中のWordPressから接続できていますが、ここにプラグイン用のテーブルを追加したり、データをいじったりしたい。

その際に、全てコマンドベースでやるのもつらいし、さらにphpMyAdminをインストールするのもはまりそうな匂いがプンプン。

ということで、ローカルのツールから接続することにします。

まずは、GCPのファイアウォールルール追加です。
場所は、VPCネットワークの中にあります。
設定するのは、上りで、tcp:3306を許可します。

しかし、これだけではつながりません。

リスナー追加

netstat -tlpn
を叩くと、
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      –

と表示されます。

これだと、ローカルからしか接続できないわけです。
これを変更するためには、bind-addressの記述をコメントアウトする、という情報が見つかります。
問題は、この記述がどこにあるかです。
結論としては、

/etc/mysql/mariadb.conf.d/50-server.cnf
にありました。
これを修正して、sudo /etc/init.d/mysql restart すると、
tcp6       0      0 :::3306                 :::*                    LISTEN      –
となってくれました。

しかし、実はこれでもつながりませんでした。

select user, host from mysql.user;すると
+—————+———–+
| user          | host      |
+—————+———–+
| hoge          | localhost |
| xxxxxxxxxxxxx | localhost |
| root          | localhost |
+—————+———–+
というユーザしかありません。
で、先に、grant all privileges on *.* to konnokiyotaka@’(接続元)’; をしたのですが、これだとユーザが追加されますが、パスワードは指定していない形になっています。
今回は、この後、SET PASSWORD FOR・・・を行いました。本当は、最初からちゃんとユーザを作ればよいでしょう。

ということで、データメンテもできるようになりました。

A5:SQL Mk-2

ところで、ローカルのDBメンテツールとして、最強はA5:SQL Mk-2だと思っています。

https://a5m2.mmatsubara.com/

各種DBへの接続に対応していますし、一番よく使うのは、SQLの整形とか。

英語版も提供されているので、海外にも広まってほしいなと思っています。