LoginSignup
6
3

More than 5 years have passed since last update.

Cloud SQL binarylogの閲覧方法

Posted at

ある事情からbinarylogを見る必要がありました。
Cloud SQLを初めて使ったということも、MySQL力が足りないこともあり、すごく苦労しました。
結論から言うと、cloud_sql_proxyを使ってポートフォワードし、mysql-serverパッケージに含まれる、mysqlbinlogを使って閲覧しました。
他に良い方法があれば教えて下さい。

前提条件

  • Cloud SQLには、MySqLを選択していること
  • インスタンスの設定で、バイナリログを有効にしていること
  • gcloudのサービスアカウントを持っていること
  • Cloud SQLのrootアカウントを持っていること
  • ローカルPCはubuntu(その他のPCは読み変えればいけると思います。)

gcloudへログイン

gcloudコマンドを使って、プロジェクトにログインします。

gcloud autn login
gcloud config set project < project name >

cloud_sql_proxyをインストール

マニュアルを参考に、cloud_sql_proxyをインストールします。
私は、すでにパスが通っているgcloudコマンドと同じ場所に配置しました。

wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
sudo chmod +x cloud_sql_proxy

cloud_sql_proxyで接続してみる

ポート番号はローカルPCで空いているポートを使います。

cloud_sql_proxy -instances=<インスタンス名>=tcp:3300

<インスタンス名>は、インスタンス接続名をそのまま使いました。

Screenshot from 2018-04-03 00-40-55.png

すると、mysqlコマンドがローカルで使えるようになります。

mysql -u root -p --host 127.0.0.1 --port 3300
Enter password: 

ログファイル名を取得します。

mysql> SHOW BINARY LOGS;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| xxxxx-bin.000001 | 104857880 |
| xxxxx-bin.000002 |  98579596 |
+------------------+-----------+
2 rows in set (0.01 sec)

mysqlbinlogでログを閲覧する

mysql-serverをインストールします。
serverとしては使いませんが、閲覧するために必要です。

sudo apt install mysql-server

ポートフォワードされたポートをmysqlbinlogに指定すると、閲覧/検索できます。

mysqlbinlog --read-from-remote-server -u root -p --host=127.0.0.1 --port 3300 xxxxx-bin.000002 --start-datetime="2018-04-01 00:00:00" --stop-datetime="2018-04-01 23:59:59" > foo.log
6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3