До входа в БД с использованием cloud-sql-proxy (Cloud SQL Auth Proxy) от Google
Привет, это я, некомпетентный.
Я на мгновение споткнулся, пытаясь подключиться к БД через 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
До новых встреч.
Всего доброго.