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
[{program}`dbeaver`](https://dbeaver.io/). Este me pareció interesante y fue el
que estuve usando hasta que conocí [{program}`dbgate`](https://dbgate.org/).
Estos dos se encuentran disponibles como *flatpak* para que los instales
cómodamente en cualquier distro Linux, pero el caso particular de
{program}`dbeaver` no se visualiza bien en Wayland cuando se instala de esta
forma, por lo que es preferible la instalación del repo oficial.
`````{tab-set}
````{tab-item} Manjaro
:sync: manjaro
```{code} bash
sudo pamac install dbeaver --no-confirm
sudo pamac install dbeaver-plugin-office dbeaver-plugin-svg-format --as-deps --no-confirm
pamac build dbgate-bin
````{tab-item} Flatpak
:sync: ubuntu
```{code} bash
flatpak install -y flathub org.dbgate.DbGate # Verificado
flatpak install -y flathub io.dbeaver.DBeaverCommunity # No verificado
```
Un punto extra para no usar {program}`MySQL Workbench` es usar no solo un
cliente moderno, sino también con soporte para múltiples bases de datos (no solo
*MySQL*).
```{hint} 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.
```