En esta página, se describe cómo conectar un cliente sqlcmd a tu instancia de Cloud SQL desde una máquina cliente que se ejecuta en una instancia de Linux o de Compute Engine Linux con la imagen de Docker del proxy de Cloud SQL.
Antes de comenzar
Debes haber:
- Instalado la CLI de gcloud Obtén más información.
- Autorizado la CLI de gcloud. Más información
- Establecido el proyecto predeterminado para la CLI de gcloud. Más información
- Configurado un usuario de base de datos en tu instancia de Cloud SQL. Obtén más información.
Conecta un cliente sqlcmd mediante la imagen de Docker del proxy de Cloud SQL Auth
Para conectarlo mediante la imagen de Docker del proxy de Cloud SQL Auth, haz lo siguiente:
-
Enable the Cloud SQL Admin API.
- Si usas una instancia de Compute Engine, prepárala de la siguiente manera:
- Muestra las propiedades de la instancia de Compute Engine:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- Verifica los alcances habilitados en la instancia.
Para autenticar mediante permisos, se requieren los siguientes:
https://www.googleapis.com/auth/sqlservice.admin
https://www.googleapis.com/auth/devstorage.read_write
De forma alternativa, el permiso
https://www.googleapis.com/auth/cloud-platform
habilita a todas las API de Google Cloud Platform.Si tu instancia de Compute Engine no tiene los alcances adecuados, puedes actualizarla para incluirlos. Para obtener más información, consulta la documentación de Compute Engine.
- Abre una conexión de terminal a la instancia con las instrucciones que aparecen en Conéctate a instancias de Linux.
- Muestra las propiedades de la instancia de Compute Engine:
- Si todavía no está instalado, instala el cliente sqlcms en la instancia de Compute Engine o en la máquina cliente.
Debian/Ubuntu
Para Debian/Ubuntu, instala las herramientas de línea de comandos de SQL Server aplicables.
CentOS/RHEL
Para CentOS/RHEL, instala las herramientas de línea de comandos de SQL Server aplicables.
openSUSE
Para openSUSE, instala las herramientas de línea de comandos de SQL Server aplicables.
Otras plataformas
Consulta la página de destino para instalar SQL Server, así como la página de descargas de SQL Server.
- Si es necesario, instala el cliente Docker:
curl https://get.docker.com | sh sudo usermod -aG docker $USER
Si usas una instancia de Compute Engine con container-optimized, esta ya tiene instalado el cliente Docker.
-
Instala la imagen de Docker del proxy de Cloud SQL Auth desde Google Container Registry.
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.2
- Si ejecutas la imagen de Docker del proxy de Cloud SQL Auth en una máquina local (no una instancia de Compute Engine) o tu instancia de Compute Engine no tiene los alcances adecuados, crea una cuenta de servicio de Google Cloud Platform.
- En la consola de Google Cloud, ve a la página Cuentas de servicio.
- Selecciona el proyecto que contiene la instancia de Cloud SQL.
- Haga clic en Crear cuenta de servicio.
- En el campo Nombre de la cuenta de servicio, ingresa un nombre descriptivo para la cuenta de servicio.
- Cambia el ID de la cuenta de servicio a un valor único y reconocible y, luego, haz clic en Crear y continuar.
-
Haz clic en el campo Seleccionar un rol y selecciona uno de los siguientes roles:
- Cloud SQL > Cliente de Cloud SQL
- Cloud SQL > Editor de Cloud SQL
- Cloud SQL > Administrador de Cloud SQL
- Haz clic en Listo para terminar de crear la cuenta de servicio.
- Haz clic en el menú de acciones de tu nueva cuenta de servicio y, luego, selecciona Administrar claves.
- Haz clic en el menú desplegable Agregar clave y, luego, en Crear clave nueva.
-
Confirma que el tipo de clave sea JSON y, luego, haz clic en Crear.
El archivo de claves privadas se descargará en tu equipo. Puedes moverlo a otra ubicación. Protege el archivo de claves.
Cuando inicias el proxy de Cloud SQL Auth debes proporcionar la ruta al archivo de claves como “PATH_TO_KEY_FILE”.
- Ve a la página Instancias de Cloud SQL en la consola de Google Cloud.
-
Selecciona la instancia para abrir la página Detalles de la instancia y copia el nombre de la conexión de la instancia.
Por ejemplo:
myproject:us-central1:myinstance
. -
Inicia el proxy de Cloud SQL Auth.
Según tu lenguaje y entorno, puedes iniciar el proxy de Cloud SQL Auth con sockets TCP o Unix. Los sockets Unix no son compatibles con aplicaciones escritas en el lenguaje de programación Java o con el entorno de Windows.
Sockets TCP
docker run -d \ -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \ -p 127.0.0.1:1433:1433 \ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.2 \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Si usas las credenciales proporcionadas por tu instancia de Compute Engine, no incluyas el parámetro
--credentials-file
y la línea-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json
.Especifica siempre el prefijo
127.0.0.1
en -p para que el proxy de Cloud SQL Auth no se exponga fuera del host local. El “0.0.0.0” en el parámetro de las instancias es necesario para que se pueda acceder al puerto desde afuera del contenedor de Docker.Sockets Unix
docker run -d -v /cloudsql:/cloudsql \ -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.2 // --unix-socket=/cloudsql \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Si usas las credenciales proporcionadas por tu instancia de Compute Engine, no incluyas el parámetro
--credentials-file
y la línea-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json
.Si usas una imagen optimizada para contenedores, usa un directorio que admita operaciones de escritura en lugar de
/cloudsql
, por ejemplo:-v /mnt/stateful_partition/cloudsql:/cloudsql
Puedes especificar más de una instancia, separadas por comas. También puedes usar los metadatos de Compute Engine a fin de determinar de forma dinámica las instancias que se conectarán. Obtén más información sobre los parámetros del proxy.
- Inicia el cliente:
La cadena de conexión que usas depende de si iniciaste el proxy de Cloud SQL Auth con un socket TCP o Docker.
Sockets de TCP
- Inicia el cliente sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
Cuando te conectas con los sockets TCP, se accede al proxy de Cloud SQL Auth a través de
127.0.0.1
. - Si se te solicita, ingresa la contraseña.
- Se mostrará el mensaje de sqlcmd.
- Inicia el cliente sqlcmd:
Mantén actualizada la imagen de Docker del proxy de Cloud SQL Auth
La imagen de Docker del proxy de Cloud SQL Auth se basa en una versión específica del proxy de Cloud SQL Auth. Cuando esté disponible una versión nueva del proxy de autenticación de Cloud SQL, extrae la versión nueva de la imagen de Docker del proxy de autenticación de Cloud SQL para mantener actualizado el entorno. Puedes ver la versión actual del proxy de Cloud SQL Auth si consultas la página de versiones de GitHub del proxy de Cloud SQL Auth. Las próximas versiones del proxy se especificarán en el foro de anuncios de Cloud SQL de los Grupos de Google.
¿Qué sigue?
- Obtén más información sobre el proxy de Cloud SQL Auth.
- Obtén ayuda para solucionar problemas de conexión del proxy de Cloud SQL Auth.
- Crea usuarios y bases de datos.
- Obtén más información sobre las opciones para conectarte a la instancia desde tu aplicación.
- Obtén más información sobre Docker.
- Obtén más información sobre Google Container Registry.
- Obtén información sobre opciones de asistencia.