До входа в БД с использованием cloud-sql-proxy (Cloud SQL Auth Proxy) от Google

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

Привет, это я, некомпетентный.
Я на мгновение споткнулся, пытаясь подключиться к БД через cloud-sql-proxy, поэтому оставлю здесь заметку.

Установка необходимых бинарных файлов

Сохранение исполняемого бинарного файла cloud-sql-proxy и настройка пути

Прежде всего, вам нужен исполняемый бинарный файл cloud-sql-proxy.
Поскольку его нет в таких пакетах, как brew, вам необходимо получить исполняемый бинарный файл, собранный для каждого набора инструкций, с сайта 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

Немногие так делают, но исполняемые бинарные файлы, установленные с помощью homebrew, помещаются в /opt/homebrew/bin/. Однако в данном случае это уникальный бинарный файл, установленный пользователем, поэтому для MacOS, которая является форком FreeBSD, /usr/local/bin показался более подходящим, и я поместил его туда.

Установка бинарных файлов MySQL

Похоже, если выполнить brew install mysql без указания версии, возникнет ошибка при подключении из-за отсутствия бинарных файлов или слишком старой версии, поэтому установите следующим образом.
Этот вопрос был решен за секунды благодаря моему старшему коллеге.

brew install mysql-client@8.4

И, та-ак,
если путь не установлен, найдите его следующим образом и создайте символическую ссылку

find /opt/homebrew -name "mysql*"
ln -s /見つかった/mysqlバイナリのパス /opt/homebrew/bin/mysql

Получение информации для подключения к БД

Проверка окружения и аутентификация

Предполагается, что процесс входа в систему уже выполнен.

gcloud auth login
gcloud auth application-default login

Укажите проект ниже

gcloud config set project プロジェクトID

Проверка проекта выполняется следующим образом

gcloud config get-value project

А затем проверьте имя подключения к БД следующим образом

gcloud sql instances describe DBインスタンス名 | grep "^connectionName:" | awk '{print $2}'

Подключение через cloud-sql-proxy

Это вопрос механизма, но этот cloud-sql-proxy проксирует БД.
Концептуально, если вы попытаетесь получить доступ к самой БД, находящейся внутри виртуальной машины, вам сначала потребуется SSH-доступ к этой ОС и процесс входа на сам сервер БД, но этот прокси позволяет серверу БД, находящемуся в Cloud SQL, Listen на локальном хосте.
Если бы порт БД был открыт, вы, вероятно, могли бы подключиться напрямую к этому серверу БД, но я не думаю, что кто-либо настраивает сервер БД в таком небезопасном состоянии.
Поэтому, если вы хотите подключиться максимально безопасно и легко, вероятно, это привело к идее проксирования БД.

Итак, давайте укажем имя подключения к БД, которое мы только что проверили.

cloud-sql-proxy --port 3306 DB接続名

Вышеуказанное относится к MySQL, поэтому для PostgreSQL и других вам потребуется указать другой порт, а также изменятся необходимые бинарные файлы, так что, возможно, эту часть придется соответствующим образом изменить.

После установления соединения, оно успешно проксируется, поэтому оставьте его как есть и подключитесь к MySQL из другого терминала.

mysql --user="DBユーザ" --password="DBユーザのパスワード" -h 127.0.0.1

До новых встреч.
Всего доброго.

Related Posts