Hızlı Başlangıç: Azure CLI kullanarak MySQL için Azure Veritabanı - Esnek Sunucu örneği oluşturma

ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Esnek Sunucu

Bu hızlı başlangıçta Azure Cloud Shell'deAzure CLI komutlarını kullanarak beş dakikada MySQL için Azure Veritabanı - Esnek Sunucu örneği oluşturma işlemi gösterilmektedir.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun. Şu anda ücretsiz Azure hesabıyla 12 ay boyunca MySQL için Azure Veritabanı - Esnek Sunucu ücretsiz sürümünü deneyebilirsiniz. Daha fazla bilgi için bkz. MySQL için Azure Veritabanı - Esnek Sunucuyu ücretsiz deneyin.

Azure Cloud Shell’i açın

Azure Cloud Shell , bu makalede açıklanan adımları çalıştırmak için kullanabileceğiniz ücretsiz, etkileşimli bir kabukdur. Cloud Shell'de yaygın Azure araçları önceden yüklenmiş ve hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.

Cloud Shell'i açmak için bir kod örneğinin sağ üst köşesinde Deneyin'i seçin.

Cloud Shell'i adresine giderek https://shell.azure.com/bashayrı bir tarayıcı sekmesinde de açabilirsiniz. Kod bloğunun içeriğini kopyalamak için Kopyala'yı seçin. Cloud Shell'de kodu yapıştırın ve çalıştırmak için Enter'ı seçin.

Azure CLI'yı yükleyip kullanmayı tercih ediyorsanız, bu hızlı başlangıçta Azure CLI sürüm 2.0 veya üzeri gerekir. Azure CLI yüklemenizin sürümünü bulmak için. komutunu çalıştırın az --version. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI'yı yükleme.

Önkoşullar

az login komutunu kullanarak hesabınızda oturum açın . özelliğini not edin id . özelliği, id Azure hesabınızın abonelik kimliğini ifade eder.

az login

az account set komutunu kullanarak Azure hesabınızdaki belirli aboneliği seçin. Komuttaki id bağımsız değişken için değer az login olarak kullanılacak çıktıdaki değeri subscription not edin.

Birden çok aboneliğiniz varsa kaynağın faturalanmasını istediğiniz aboneliği seçin. Aboneliklerinizin listesini almak için az account list komutunu kullanın.

az account set --subscription <subscription ID>

MySQL için Azure Veritabanı esnek sunucu oluşturma

komutunu kullanarak az group create bir Azure kaynak grubu oluşturun. Ardından kaynak grubu içinde MySQL için Azure Veritabanı esnek sunucunuzu oluşturun. Benzersiz bir ad sağladığıdan emin olun. Aşağıdaki örnek eastus2 konumunda myresourcegroup adlı bir kaynak grubu oluşturur.

az group create --name myresourcegroup --location eastus2

komutunu kullanarak az mysql flexible-server create MySQL için Azure Veritabanı esnek bir sunucu oluşturun. Bir sunucu birden çok veritabanı içerebilir. Aşağıdaki komut, Azure CLI'nın yerel bağlamındaki hizmet varsayılanlarını ve değerlerini kullanarak bir sunucu oluşturur:

az mysql flexible-server create

Oluşturulan sunucu aşağıdaki özniteliklere sahiptir:

  • Otomatik olarak oluşturulan sunucu adı, yönetici kullanıcı adı, yönetici parolası ve kaynak grubu adı (yerel bağlamda belirtilmemişse) ve kaynak grubunuzla aynı konumdadır.
  • Kalan sunucu yapılandırmaları için hizmet varsayılanları: işlem katmanı (Serileştirilebilir), işlem boyutu/SKU (B1MS), yedekleme saklama süresi (yedi gün) ve MySQL sürümü (5.7).
  • Varsayılan bağlantı yöntemi , otomatik olarak oluşturulan bir sanal ağ ve alt ağ ile Özel erişimdir (VNet Tümleştirmesi).

Not

Sunucu oluşturduktan sonra bağlantı yöntemi değiştirilemez. Örneğin, sunucuyu oluştururken Özel erişim (VNet Tümleştirmesi) seçeneğini belirlediyseniz, dağıtımdan sonra ayarı Genel erişim (izin verilen IP adresleri) olarak değiştiremezsiniz. Sanal ağ tümleştirmesini kullanarak sunucunuza güvenli bir şekilde erişmek için özel erişimi olan bir sunucu oluşturmanızı kesinlikle öneririz. Özel erişim hakkında daha fazla bilgi için ağ kavramları hakkındaki makaleye bakın.

Varsayılan değerleri değiştirmek istiyorsanız, yapılandırılabilir Azure CLI parametrelerinin tam listesi için Azure CLI başvuru belgelerine bakın.

Örnek çıktı aşağıda verilmiştir:

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"
}

Varsayılan değerleri değiştirmek istiyorsanız, yapılandırılabilir Azure CLI parametrelerinin tam listesi için Azure CLI başvuru belgelerine bakın.

veritabanı oluşturun

Henüz veritabanı oluşturmadıysanız aşağıdaki komutu çalıştırarak newdatabase adlı bir veritabanı oluşturun:

az mysql flexible-server db create -d newdatabase

Not

MySQL için Azure Veritabanı- Esnek Sunucu'ya Bağlan, 3306 numaralı bağlantı noktasını kullanarak iletişim kurar. Şirket ağı içinden bağlanmaya çalışırsanız 3306 numaralı bağlantı noktası üzerinden giden trafiğe izin verilmiyor olabilir. BT departmanınız 3306 numaralı bağlantı noktasını açmadığı sürece sunucunuza bağlanamazsınız.

Bağlantı bilgilerini alma

Sunucunuza bağlanmak için konak bilgilerini sağlamanız ve kimlik bilgilerine erişmeniz gerekir:

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

Sonuç JSON biçimindedir. ve administratorLogindeğerlerini fullyQualifiedDomainName not edin. JSON çıktısının bir örneği aşağıda verilmişti:

{
  "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"
}

Azure CLI kullanarak bağlantıyı Bağlan ve test edin

Azure CLI'da komutunu kullanarak az mysql flexible-server connect esnek sunucunuza bağlanmak için MySQL için Azure Veritabanı - Esnek Sunucu kullanabilirsiniz. Veritabanı sunucunuza bağlantıyı test etmek, hızlı bir temel veritabanı oluşturmak ve mysql.exe veya MySQL Workbench yüklemeden doğrudan sunucunuzda sorgu çalıştırmak için bu komutu kullanabilirsiniz. Aynı anda birden çok sorgu çalıştırmak için komutunu etkileşimli modda da kullanabilirsiniz.

Geliştirme ortamınızdan veritabanı bağlantısını test etmek ve doğrulamak için aşağıdaki betiği çalıştırın:

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

Bir örnek aşağıda verilmiştir:

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

Başarılı bir bağlantıda, aşağıdaki örneğe benzer bir çıkış görüntülenir:

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

Bağlantı başarısız olursa şu çözümleri deneyin:

  • İstemci makinenizde 3306 numaralı bağlantı noktasının açık olup olmadığını denetleyin.
  • Sunucu yöneticisi kullanıcı adınızın ve parolanızın doğru olduğunu doğrulayın.
  • İstemci makineniz için bir güvenlik duvarı kuralı yapılandırdığınızdan emin olun.
  • Sunucunuzu bir sanal ağda özel erişim için yapılandırdıysanız istemci makinenizin sunucuyla aynı sanal ağda olduğundan emin olun.

Tek bir sorgu çalıştırmak için bağımsız değişkenini--querytext (-q):

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

Bir örnek aşağıda verilmiştir:

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

kullanma az mysql flexible-server connecthakkında daha fazla bilgi edinmek için bkz . Azure CLI connect ve query.

MySQL komut satırı istemcisini kullanarak Bağlan

Sanal ağ tümleştirmesi ile özel erişim kullanarak MySQL için Azure Veritabanı esnek sunucunuzu oluşturduysanız, sunucunuzla aynı sanal ağda bulunan bir kaynaktan sunucunuza bağlanın. Bir sanal makine oluşturabilir ve MySQL için Azure Veritabanı - Esnek Sunucu örneğinizi oluştururken oluşturulan sanal ağa ekleyebilirsiniz. Daha fazla bilgi edinmek için bkz . Özel erişimi yapılandırma.

genel erişimi (izin verilen IP adresleri) kullanarak MySQL için Azure Veritabanı - Esnek Sunucu örneğinizi oluşturduysanız, yerel IP adresinizi sunucunuzdaki güvenlik duvarı kuralları listesine ekleyebilirsiniz. Ayrıntılı yönergeler için bkz . Güvenlik duvarı kurallarını oluşturma veya yönetme.

Yerel ortamınızdan sunucuya bağlanmak için mysql.exe veya MySQL Workbench kullanabilirsiniz. MySQL için Azure Veritabanı - Esnek Sunucu, daha önce Güvenli Yuva Katmanı (SSL) olarak bilinen Aktarım Katmanı Güvenliği 'ni (TLS) kullanarak istemci uygulamalarınızı MySQL için Azure Veritabanı - Esnek Sunucu hizmetine bağlamayı destekler. TLS, uyumluluk gereksinimlerine uyabilmeniz için veritabanı sunucunuzla istemci uygulamalarınız arasında şifreli ağ bağlantıları sağlayan endüstri standardı bir protokoldür. MySQL için Azure Veritabanı esnek sunucunuzu kullanarak bağlanmak için sertifika yetkilisi doğrulaması için genel SSL sertifikasını indirin. Şifrelenmiş bağlantılar kullanarak bağlanma veya SSL'yi devre dışı bırakma hakkında daha fazla bilgi edinmek için bkz. şifrelenmiş bağlantıları kullanarak MySQL için Azure Veritabanı - Esnek Sunucu'ya Bağlan.

Aşağıdaki örnekte, MySQL komut satırı istemci aracını kullanarak MySQL için Azure Veritabanı esnek sunucunuza nasıl bağlandığınız gösterilmektedir. Henüz yüklü değilse aracı yükleyebilirsiniz. SSL bağlantıları için gereken DigiCertGlobalRootCA sertifikasını indirin. TLS/SSL sertifika doğrulamasını --ssl-mode=REQUIRED zorunlu kılmak için bağlantı dizesi ayarını kullanın. Yerel sertifika dosya yolunu parametresine --ssl-ca geçirin. Değerleri gerçek sunucu adınız ve parolanızla değiştirin.

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

Genel erişimi kullanarak MySQL için Azure Veritabanı esnek sunucunuzu sağladıysanız, önceden yüklenmiş MySQL istemcisini kullanarak MySQL için Azure Veritabanı esnek sunucunuza bağlanmak için Azure Cloud Shell'i de kullanabilirsiniz.

Azure Cloud Shell'i kullanarak MySQL için Azure Veritabanı esnek sunucunuza bağlanmak için Azure Cloud Shell'den MySQL için Azure Veritabanı esnek sunucunuza ağ erişimine izin verin. Erişime izin vermek için MySQL için Azure Veritabanı esnek sunucunuzun Azure portalı bölmesine gidin. Güvenlik Duvarı altında, aşağıdaki ekran görüntüsünde gösterildiği gibi Azure'daki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver onay kutusunu seçin. Ardından ayarı kalıcı hale getirmek için Kaydet'i seçin.

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

Not

Yalnızca geliştirme veya test için Azure'ın içindeki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver'i seçin. Bu ayar, güvenlik duvarını diğer Azure aboneliklerindeki bağlantılar da dahil olmak üzere herhangi bir Azure hizmetine veya varlığına ayrılan IP adreslerinden bağlantılara izin verecek şekilde yapılandırılır.

Azure Cloud Shell'i açmak için Deneyin'i seçin. Cloud Shell'de, MySQL için Azure Veritabanı esnek sunucunuza bağlanmak için aşağıdaki komutları kullanın. Komutta sunucu adınızı, kullanıcı adınızı ve parolanızı kullanın.

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

Önemli

Cloud Shell kullanarak MySQL için Azure Veritabanı esnek sunucunuza bağlandığınızda parametresini --ssl=true kullanın. kullanmayın --ssl-mode=REQUIRED.

Bu kılavuzun önemli olmasının birincil nedeni, Azure Cloud Shell'in MariaDB dağıtımından mysql.exe istemcisiyle önceden yüklenmiş olmasıdır. mysql.exe istemcisi parametresini --ssl gerektirir. Oracle dağıtımındaki MySQL istemcisi parametresini --ssl-mode gerektirir.

MySQL için Azure Veritabanı esnek sunucunuza bağlanırken aşağıdaki hata iletisini görürseniz, güvenlik duvarı kurallarınızı ayarlarken Azure'ın içindeki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver onay kutusunu seçmediyseniz veya seçenek kaydedilmez. Güvenlik duvarı kurallarını ayarlayın ve yeniden deneyin.

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

Kaynakları temizleme

Bu makale için oluşturduğunuz kaynakları başka bir hızlı başlangıçta veya öğreticide kullanmanız gerekmiyorsa, aşağıdaki komutu çalıştırarak bunları silebilirsiniz:

az group delete --name myresourcegroup

Yalnızca oluşturduğunuz esnek sunucuyu silmek istiyorsanız şu komutu çalıştırın:

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