Inicio rápido: Creación de una instancia del Servidor flexible de Azure Database for MySQL mediante la CLI de Azure

SE APLICA A: Azure Database for MySQL: Servidor flexible

En este inicio rápido se muestra cómo usar comandos de la CLI de Azure en Azure Cloud Shell para crear una instancia del Servidor flexible de Azure Database for MySQL en cinco minutos.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar. Actualmente, con una cuenta gratuita de Azure, puede probar el Servidor flexible de Azure Database for MySQL gratis durante 12 meses. Para más información, vea Probar el Servidor flexible de Azure Database for MySQL de forma gratuita.

Apertura de Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos que se describen en este artículo. En Cloud Shell, las herramientas comunes de Azure están preinstaladas y configuradas para usarlas con su cuenta.

Para abrir Cloud Shell, en la esquina superior derecha de un ejemplo de código, seleccione Pruébelo.

También puede abrir Cloud Shell en una pestaña independiente acudiendo a https://shell.azure.com/bash. Seleccione Copiar para copiar el contenido de un bloque de código. En Cloud Shell, pegue el código y seleccione Entrar para ejecutarlo.

Si prefiere instalar y usar la CLI de Azure, en este inicio rápido se requiere la versión 2.0 o posterior de la CLI de Azure. Para buscar la versión de la instalación de la CLI de Azure. , ejecute az --version. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure.

Requisitos previos

Inicie sesión en la cuenta mediante el comando az login. Anote la propiedad id. La propiedad id hace referencia al identificador de suscripción de la cuenta de Azure.

az login

Seleccione la suscripción específica en su cuenta mediante el comando az account set. Anote el valor id de la salida az login para usarlo como valor del argumento subscription del comando.

Si tiene varias suscripciones, seleccione la suscripción en la que desea que se facture el recurso. Para obtener una lista de las suscripciones, use az account list.

az account set --subscription <subscription ID>

Creación de un servidor flexible de Azure Database for MySQL

Cree un grupo de recursos de Azure mediante el comando az group create. A continuación, cree el Servidor flexible de Azure Database for MySQL dentro del grupo de recursos. Asegúrese de proporcionar un nombre único. En el ejemplo siguiente, se crea un grupo de recursos denominado myresourcegroup en la ubicación eastus2.

az group create --name myresourcegroup --location eastus2

Cree un Servidor flexible de Azure Database for MySQL mediante el comando az mysql flexible-server create. Un servidor puede contener varias bases de datos. El comando siguiente crea un servidor mediante valores predeterminados de servicio y desde el contexto local de la CLI de Azure:

az mysql flexible-server create

El servidor que se crea tiene los siguientes atributos:

  • Un nombre de servidor generado automáticamente, un nombre de usuario de administrador, una contraseña de administrador y un nombre de grupo de recursos (si aún no se especifica en un contexto local) y se encuentra en la misma ubicación que el grupo de recursos.
  • Los valores predeterminados del servicio para las configuraciones de servidor restantes: nivel de proceso (ampliable), tamaño de proceso/SKU (B1MS), período de retención de copia de seguridad (siete días) y versión de MySQL (5.7).
  • El método de conectividad predeterminado es Acceso privado (integración con red virtual), con una red virtual y subred generada automáticamente.

Nota:

El método de conectividad no se puede cambiar después de crear el servidor. Por ejemplo, si seleccionó Acceso privado (integración con red virtual) al crear el servidor, no puede cambiar la configuración a Acceso público (direcciones IP permitidas) después de la implementación. Se recomienda encarecidamente crear un servidor que tenga acceso privado para acceder de forma segura al servidor mediante la integración de red virtual. Para obtener más información sobre el acceso privado, consulte el artículo sobre los conceptos de conexión en red.

Si desea cambiar los valores predeterminados, consulte la documentación de referencia de la CLI de Azure para obtener la lista completa de parámetros configurables de la CLI de Azure.

Esta es una salida de ejemplo:

Creating Resource Group 'groupXXXXXXXXXX'...
Creating new vnet "serverXXXXXXXXXVNET" in resource group "groupXXXXXXXXXX"...
Creating new subnet "serverXXXXXXXXXSubnet" in resource group "groupXXXXXXXXXX" and delegating it to "Microsoft.DBforMySQL/flexibleServers"...
Creating MySQL Server 'serverXXXXXXXXX' in group 'groupXXXXXXXXXX'...
Your server 'serverXXXXXXXXX' is using SKU 'Standard_B1ms' (Paid Tier). For pricing details, see https://aka.ms/mysql-pricing.
Creating MySQL database 'flexibleserverdb'...
Make a note of your password. If you forget your password, reset the password by running 'az mysql flexible-server update -n serverXXXXXXXXX -g groupXXXXXXXXXX -p <new-password>'.
{
  "connectionString": "server=serverXXXXXXXXX.mysql.database.azure.com;database=flexibleserverdb;uid=secureusername;pwd=securepasswordstring",
  "databaseName": "flexibleserverdb",
  "host": "serverXXXXXXXXX.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.DBforMySQL/flexibleServers/serverXXXXXXXXX",
  "location": "East US 2",
  "password": "securepasswordstring",
  "resourceGroup": "groupXXXXXXXXXX",
  "skuname": "Standard_B1ms",
  "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.Network/virtualNetworks/serverXXXXXXXXXVNET/subnets/serverXXXXXXXXXSubnet",
  "username": "secureusername",
  "version": "5.7"
}

Si desea cambiar los valores predeterminados, consulte la documentación de referencia de la CLI de Azure para obtener la lista completa de parámetros configurables de la CLI de Azure.

Creación de una base de datos

Si aún no ha creado una base de datos, cree una denominada newdatabase ejecutando el comando siguiente:

az mysql flexible-server db create -d newdatabase

Nota:

Las conexiones al Servidor flexible de Azure Database for MySQL se comunican mediante el puerto 3306. Si intenta conectarse desde una red corporativa, es posible que no se permita el tráfico saliente a través del puerto 3306. No se puede conectar al servidor a menos que el departamento de TI abra el puerto 3306.

Obtención de la información de conexión

Para conectarse al servidor, debe proporcionar las credenciales de acceso y la información del host:

az mysql flexible-server show --resource-group myresourcegroup --name mydemoserver

El resultado está en formato JSON. Anote los valores de fullyQualifiedDomainName y administratorLogin. Este es un ejemplo de la salida JSON:

{
  "administratorLogin": "myadminusername",
  "administratorLoginPassword": null,
  "delegatedSubnetArguments": {
    "subnetArmResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/mydemoserverVNET/subnets/mydemoserverSubnet"
  },
  "fullyQualifiedDomainName": "mydemoserver.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/flexibleServers/mydemoserver",
  "location": "East US 2",
  "name": "mydemoserver",
  "publicNetworkAccess": "Disabled",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 0,
    "name": "Standard_B1ms",
    "tier": "Burstable"
  },
  "storageProfile": {
    "backupRetentionDays": 7,
    "fileStorageSkuName": "Premium_LRS",
    "storageAutogrow": "Disabled",
    "storageIops": 0,
    "storageMb": 10240
  },
  "tags": null,
  "type": "Microsoft.DBforMySQL/flexibleServers",
  "version": "5.7"
}

Conexión y prueba de la conexión mediante la CLI de Azure

Puede usar el Servidor de Azure Database for MySQL para conectarse al servidor flexible mediante el comando az mysql flexible-server connect en la CLI de Azure. Puede usar este comando para probar la conectividad con el servidor de bases de datos, crear una base de datos básica rápida y ejecutar consultas directamente en el servidor sin instalar mysql.exe ni MySQL Workbench. También puede usar el comando en modo interactivo para ejecutar varias consultas a la vez.

Ejecute el siguiente script para probar y validar la conexión a la base de datos desde el entorno de desarrollo:

az mysql flexible-server connect -n <servername> -u <username> -p <password> -d <databasename>

Este es un ejemplo:

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase

En una conexión correcta, aparece una salida como en el ejemplo siguiente:

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

Si se produce un error en la conexión, pruebe estas soluciones:

  • Compruebe si el puerto 3306 está abierto en el equipo cliente.
  • Compruebe que el nombre de usuario y la contraseña del administrador del servidor son correctos.
  • Compruebe que configuró una regla de firewall para la máquina cliente.
  • Asegúrese de que la máquina cliente está en la misma red virtual que el servidor si configuró el servidor para el acceso privado en una red virtual.

Para ejecutar una sola consulta, use el argumento de --querytext (-q):

az mysql flexible-server connect -n <server-name> -u <username> -p "<password>" -d <database-name> --querytext "<query text>"

Este es un ejemplo:

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase -q "select * from table1;" --output table

Para más información sobre el uso de az mysql flexible-server connect, consulte Conexión y consultas de la CLI de Azure.

Conexión mediante el cliente de línea de comandos de MySQL

Si creó el Servidor flexible de Azure Database for MySQL mediante el acceso privado con integración de red virtual, conéctese al servidor desde un recurso que se encuentre en la misma red virtual que el servidor. Puede crear una máquina virtual y agregarla a la red virtual que se creó al crear la instancia del Servidor flexible de Azure Database for MySQL. Para más información, consulte Configuración del acceso privado.

Si creó la instancia del Servidor flexible de Azure Database for MySQL mediante el acceso público (direcciones IP permitidas), puede agregar la dirección IP local a la lista de reglas de firewall en el servidor. Para obtener instrucciones detalladas, consulte Creación o administración de reglas de firewall.

Para conectarse al servidor desde el entorno local, puede usar mysql.exe o MySQL Workbench. El Servidor flexible de Azure Database for MySQL admite la conexión de las aplicaciones cliente al servicio del Servidor flexible de Azure Database for MySQL mediante la Seguridad de la capa de transporte (TLS), anteriormente conocida como Capa de sockets seguros (SSL). TLS es un protocolo estándar del sector que garantiza conexiones de red cifradas entre el servidor de bases de datos y las aplicaciones cliente, por lo que puede cumplir los requisitos de cumplimiento. Para conectarse mediante el Servidor flexible de Azure Database for MySQL, descargue el certificado SSL público para la comprobación de la entidad de certificación. Para más información sobre cómo conectarse mediante conexiones cifradas o deshabilitar SSL, consulte Conexión al Servidor flexible de Azure Database for MySQL mediante conexiones cifradas.

En el ejemplo siguiente se muestra cómo conectarse al Servidor flexible de Azure Database for MySQL mediante la herramienta de cliente de la línea de comandos de MySQL. Puede instalar la herramienta si aún no está instalada. Descargue el certificado DigiCertGlobalRootCA necesario para las conexiones SSL. Use la configuración de la cadena de conexión --ssl-mode=REQUIRED para aplicar la comprobación del certificado TLS/SSL. Pase la ruta de acceso al archivo del certificado local al parámetro --ssl-ca. Reemplace los valores por el nombre real del servidor y la contraseña.

sudo apt-get install mysql-client
wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl-mode=REQUIRED --ssl-ca=DigiCertGlobalRootCA.crt.pem

Si aprovisionó el Servidor flexible de Azure Database for MySQL mediante el acceso público, también puede usar Azure Cloud Shell para conectarse al Servidor flexible de Azure Database for MySQL mediante el cliente de MySQL preinstalado.

Para usar Azure Cloud Shell para conectarse al Servidor flexible de Azure Database for MySQL, permita el acceso de red desde Azure Cloud Shell al Servidor flexible de Azure Database for MySQL. Para permitir el acceso, vaya al panel Azure Portal Redes del Servidor flexible de Azure Database for MySQL. En Firewall, active la casilla Permitir el acceso público desde cualquier servicio de Azure dentro de Azure a este servidor tal como se muestra en la captura de pantalla siguiente. A continuación, seleccione Guardar para conservar la configuración.

Screenshot that shows how to grant Azure Cloud Shell access to an Azure Database for MySQL flexible server for public access network configuration.

Nota:

Seleccione Permitir el acceso público desde cualquier servicio de Azure dentro de Azure a este servidor solo para desarrollo o pruebas. Esta configuración configura el firewall para permitir conexiones desde direcciones IP asignadas a cualquier servicio o recurso de Azure, incluidas las conexiones de otras suscripciones de Azure.

Seleccione Probar ahora para abrir Azure Cloud Shell. En Cloud Shell, use los siguientes comandos para conectarse al Servidor flexible de Azure Database for MySQL. Use el nombre del servidor, el nombre de usuario y la contraseña en el comando.

wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl=true --ssl-ca=DigiCertGlobalRootCA.crt.pem

Importante

Al conectarse al Servidor flexible de Azure Database for MySQL mediante Cloud Shell, use el parámetro --ssl=true. No use --ssl-mode=REQUIRED.

La principal razón por la que esta guía es importante es que Azure Cloud Shell está preinstalado con el cliente mysql.exe de la distribución de MariaDB. El cliente mysql.exe requiere el parámetro --ssl. El cliente de MySQL de la distribución de Oracle requiere el parámetro --ssl-mode.

Si ve el siguiente mensaje de error al conectarse al Servidor flexible de Azure Database for MySQL, no ha seleccionado la casilla Permitir el acceso público desde cualquier servicio dentro de Azure a este servidor al configurar las reglas de firewall o no se guardó la opción. Establezca las reglas de firewall y vuelva a intentarlo.

ERROR 2002 (HY000): Can't connect to MySQL server on <servername> (115)

Limpieza de recursos

Si no necesita usar los recursos que creó para este artículo en otro inicio rápido o tutorial, puede eliminarlos ejecutando el siguiente comando:

az group delete --name myresourcegroup

Si desea eliminar solo el servidor flexible que creó, ejecute este comando:

az mysql flexible-server delete --resource-group myresourcegroup --name mydemoserver