Cloud SQL Private IP で接続できないとき

「接続できない」には VPC の設定が〜〜とかいろいろあると思うんだけど、今回はこのエラーメッセージに対する解決

$ mysql -u root -p --host 127.0.0.1 --port 3306
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'cloudsqlproxy~10.0.0.2' (using password: YES)

結論、パスワードに特殊文字がないか確認しよう。入ってたらパスワードを設定しなおそう。

Ensure that the database password does not contain any of the following special characters: [] {}() , ; ? * ! @.

Help And Training Community より

前提

このガイドと同じ構成

Quickstart: Connect to a Cloud SQL for MySQL instance with private IP  |  Google Cloud

つまり、

  • private IP の Cloud SQL
  • 同じ VPC network 内に GCE instance を立てた
  • ssh terminal #1 に Cloud SQL Auth Proxy
  • ssh terminal #2 から mysql コマンドを叩こうとしている (で、 Access denied になる)

お気持ち

ググっても SSL cert の話とかネットワーク周りで、しかしパスワードは 100% あってるから盲点だった。Salesforce ありがとう、というかなんで Salesforce?