Conecta con una instancia de Cloud SQL en Manjaro#
Aprovechando que estoy en reinstalación por la transición de (X/K)ubuntu a Manjaro, les contaré sobre como conectar a una instancia de Cloud SQL en Manjaro.
Google Cloud SDK#
Instalación de Google Cloud SDK#
Para la gestión de elementos de infraestructura, lo cual incluye la conexión a la base de datos, se requiere disponer de Google Cloud SDK. El proceso de instalación depende del sistema operativo, y ante inquietudes, siempre puedes remitirte a la documentación oficial.
Este paquete está disponible en el AUR, por lo cual se puede usar en Arch.
pamac build google-cloud-cli --no-confirm
Consejo
Si no detecta el binario, puedes reiniciar cerrar y abrir la terminal. En mi
caso solo me funcionó de esta forma, ni con source de
~/.zshrc
ni ~/.bashrc
funcionó. A pesar de esto, era detectado
por whereis y which.
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo apt-get install apt-transport-https ca-certificates gnupg
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt update -q
sudo apt install -y google-cloud-sdk
Autenticación Google Cloud SDK#
Una vez se ha instalado, debemos autenticarnos para la gestión de proyectos y
para el manejo de credenciales de aplicaciones. Si usas más de un navegador y
separas tu perfil personal y laboral según el navegador, o usas múltiple perfil
en el navegador, o incluso si es un escritorio remoto o un contenedor usado
desde Windows y no puedes usar el navegador, recomiendo que la autenticación la
gestiones copiando y pegando manualmente el enlace de autenticación
(--no-launch-browser
). Ambas autenticaciones requieren validar en navegador.
gcloud init --no-launch-browser
gcloud auth application-default login --no-launch-browser
Cloud SQL Proxy#
Instalación de Cloud SQL Proxy#
Con el fin de crear el proxy de la conexión a la base de datos, en caso de requerir funciones de consulta y no de administración general, debemos tener Cloud SQL Proxy. Para mayor detalle puedes remitirte a la documentación oficial.
pamac build cloud-sql-proxy
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.1/cloud-sql-proxy.linux.amd64
chmod +x cloud-sql-proxy
Este método válido para cualquier distribución Linux, dejará fijada la versión.
Iniciar Cloud SQL Proxy#
Con el fin de crear la conexión a la instancia de base de datos, debemos iniciar el proxy de la siguiente forma:
cloud-sql-proxy <NOMBRE DE INSTANCIA> -p <PUERTO>
Esto nos habilitará el acceso por 127.0.0.1:<PUERTO>
.
Error
2024/12/10 16:36:44 Authorizing with Application Default Credentials
2024/12/10 16:36:44 Error starting proxy: error initializing dialer: failed to create default credentials: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information
2024/12/10 16:36:44 The proxy has encountered a terminal error: unable to start: error initializing dialer: failed to create default credentials: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information
Este error corresponde a la necesidad de aplicar la autenticación de credenciales por defecto de aplicación que se describe previamente.
Conectar a la base de datos#
En mi trabajo usamos MySQL, y aunque comencé usando MySQL Workbench, este no era muy cómodo y mis compañeros usaban dbeaver. Este me pareció interesante y fue el que estuve usando hasta que conocí dbgate. Estos dos se encuentran disponibles como flatpak para que los instales cómodamente en cualquier distro Linux, pero el caso particular de dbeaver no se visualiza bien en Wayland cuando se instala de esta forma, por lo que es preferible la instalación del repo oficial.
sudo pamac install dbeaver --no-confirm
sudo pamac install dbeaver-plugin-office dbeaver-plugin-svg-format --as-deps --no-confirm
pamac build dbgate-bin
flatpak install -y flathub org.dbgate.DbGate # Verificado
flatpak install -y flathub io.dbeaver.DBeaverCommunity # No verificado
Un punto extra para no usar MySQL Workbench es usar no solo un cliente moderno, sino también con soporte para múltiples bases de datos (no solo MySQL).
Consejo
En el pasado, he tenido conflictos con el uso de localhost
como asignación
del host en los clientes, y esto es que no siempre debe resolverse como
127.0.0.1
, por lo cual es mejor usar siempre en la configuración la IP.