Jusqu'à la connexion à la base de données en utilisant cloud-sql-proxy (Cloud SQL Auth Proxy) de Google
Bonjour, c'est l'incompétent.
J'ai eu un petit accroc en essayant de me connecter à la base de données via cloud-sql-proxy, alors je vais en faire une note.
Installation des binaires nécessaires
Enregistrer le binaire exécutable de cloud-sql-proxy et ajouter au PATH
Tout d'abord, vous avez besoin du binaire exécutable de cloud-sql-proxy.
Comme il n'existe pas dans les gestionnaires de paquets comme brew, vous devez obtenir le binaire exécutable compilé pour votre jeu d'instructions respectif depuis le site de Google.
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.2/cloud-sql-proxy.darwin.arm64
chmod +x cloud-sql-proxy
sudo mv cloud-sql-proxy /usr/local/bin
which cloud-sql-proxy
Peu de gens le font, mais les binaires exécutables installés avec homebrew sont placés sous /opt/homebrew/bin/. Cependant, comme il s'agit d'un binaire unique installé par l'utilisateur, j'ai pensé que /usr/local/bin serait plus approprié pour MacOS, qui est un fork de FreeBSD, et je l'ai donc placé là.
Installer le binaire MySQL
Apparemment, si vous exécutez brew install mysql sans spécifier de version, il manquera des binaires ou la version sera trop ancienne, ce qui provoquera une erreur lors de la connexion. Installez-le donc comme suit.
Ce problème a été résolu en quelques secondes grâce à mon aîné.
brew install mysql-client@8.4
Et, puis,
Si le chemin n'est pas configuré, recherchez-le comme suit et créez un lien symbolique
find /opt/homebrew -name "mysql*"
ln -s /見つかった/mysqlバイナリのパス /opt/homebrew/bin/mysql
Obtention des informations de la base de données à connecter
Vérification de l'environnement et authentification
Nous supposons que le processus de connexion a déjà été effectué.
gcloud auth login
gcloud auth application-default login
Spécifiez le projet comme suit
gcloud config set project プロジェクトID
Vérifiez le projet comme suit
gcloud config get-value project
Ensuite, vérifiez le nom de connexion à la base de données comme suit
gcloud sql instances describe DBインスタンス名 | grep "^connectionName:" | awk '{print $2}'
Connexion via cloud-sql-proxy
C'est une question de mécanisme, mais ce cloud-sql-proxy agit comme un proxy pour la base de données.
En substance, si vous essayez d'accéder à la base de données elle-même qui réside dans une VM, vous devriez d'abord vous connecter à cet OS via SSH et vous authentifier sur le serveur de base de données. Cependant, ce proxy permet au serveur de base de données existant dans Cloud SQL d'être Listen sur l'hôte local.
Si le port de la base de données était ouvert, vous pourriez vous connecter directement au serveur de base de données, mais je ne pense pas qu'il y ait d'endroits où les serveurs de base de données sont configurés dans un état aussi vulnérable.
Par conséquent, si vous voulez vous connecter de la manière la plus sécurisée et la plus simple possible, l'idée est de proxifier la base de données.
Maintenant, spécifions le nom de connexion de la base de données que nous avons vérifié précédemment.
cloud-sql-proxy --port 3306 DB接続名
Ce qui précède est pour MySQL, donc pour PostgreSQL ou d'autres, il serait nécessaire de spécifier un port différent et les binaires requis changeraient également, il faudrait donc modifier cela en conséquence.
Une fois la connexion établie, elle est correctement proxifiée, vous pouvez donc la laisser telle quelle et vous connecter à MySQL depuis un autre terminal.
mysql --user="DBユーザ" --password="DBユーザのパスワード" -h 127.0.0.1
À la prochaine.
Cordialement.