Hızlı başlangıç: Azure CLı kullanarak MySQL için Azure veritabanı esnek sunucusu oluşturma
Uygulama hedefi:
MySQL için Azure veritabanı-esnek sunucu
Bu hızlı başlangıçta, beş dakikada bir MySQL için Azure veritabanı esnek sunucusu oluşturmak üzere Azure Cloud Shell Azure CLI komutlarının nasıl kullanılacağı gösterilmektedir.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun. Ücretsiz Azure hesabıyla artık Esnek Sunucu'MySQL için Azure Veritabanı 12 ay boyunca ücretsiz olarak denemeniz mümkün. Diğer ayrıntılar için bkz. Esnek Sunucuyu ücretsiz deneyin.
Azure Cloud Shell’i başlatma
Azure Cloud Shell , bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabuktur. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.
Cloud Shell'i açmak için kod bloğunun sağ üst köşesinden Deneyin'i seçmeniz yeterlidir. Ayrıca, ' a giderek ayrı bir tarayıcı sekmesinde Cloud Shell de açabilirsiniz https://shell.azure.com/bash . Kod bloklarını kopyalamak için Kopyala ' yı seçin, Cloud Shell yapıştırın ve çalıştırmak için ENTER ' u seçin.
CLı 'yi yerel olarak yükleyip kullanmayı tercih ederseniz bu hızlı başlangıç, Azure CLı sürüm 2,0 veya üzerini gerektirir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
Önkoşullar
Az Login komutunu kullanarak hesabınızda oturum açmanız gerekir. Azure hesabınızın ABONELIK kimliğini ifade eden ID özelliğine göz önüne alın.
az login
Az Account set komutunu kullanarak hesabınız altındaki belirli bir aboneliği seçin. Komutta abonelik bağımsız değişkeninin değeri olarak kullanılacak az Login çıktısından ID değerini bir yere unutmayın. Birden fazla aboneliğiniz varsa kaynağın faturalanacağı uygun aboneliği seçin. Aboneliğinizi tamamen almak için az Account Listkullanın.
az account set --subscription <subscription id>
Esnek sunucu oluşturma
Komutunu kullanarak bir Azure Kaynak grubu oluşturun az group create ve ardından bu kaynak grubunun içinde MySQL esnek sunucunuzu oluşturun. Benzersiz bir ad sağlamanız gerekir. Aşağıdaki örnek eastus2 konumunda myresourcegroup adlı bir kaynak grubu oluşturur.
az group create --name myresourcegroup --location eastus2
Komutuyla esnek bir sunucu oluşturun az mysql flexible-server create . Bir sunucu birden çok veritabanı içerebilir. Aşağıdaki komut, Azure CLı 'nın Yerel bağlamındanhizmet 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ı, kaynak grubu adı (zaten yerel bağlamda belirtilmemişse) ve kaynak grubunuzda aynı konumda
- Kalan sunucu yapılandırmalarının hizmet Varsayılanları: İşlem Katmanı (Burstable), işlem boyutu/SKU (B1MS), yedekleme saklama süresi (7 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şime (VNet tümleştirme) sahiptir
Not
Sunucu oluşturulduktan sonra bağlantı yöntemi değiştirilemez. Örneğin, oluştur sırasında özel erişim (VNET tümleştirmesi) seçtiyseniz, oluşturulduktan sonra ortak erişime (izin verilen IP adresleri) geçiş yapılamaz. VNet tümleştirmesini kullanarak sunucunuza güvenli bir şekilde erişmek için özel erişime sahip bir sunucu oluşturmanız önemle önerilir. Kavramlar makalesindeözel erişim hakkında daha fazla bilgi edinin.
Herhangi bir Varsayılanı değiştirmek istiyorsanız, lütfen yapılandırılabilir CLı parametrelerinin tüm listesi için Azure CLı başvuru belgelerine bakın.
Aşağıda örnek bir çıktı 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). Please refer to https://aka.ms/mysql-pricing for pricing details
Creating MySQL database 'flexibleserverdb'...
Make a note of your password. If you forget, you would have to reset your password with '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"
}
Herhangi bir Varsayılanı değiştirmek istiyorsanız, lütfen yapılandırılabilir CLı parametrelerinin tüm listesi için Azure CLı başvuru belgelerine bakın.
Veritabanı oluşturma
Bir veritabanı oluşturmak için aşağıdaki komutu çalıştırın, henüz bir tane oluşturmadıysanız NewDataBase .
az mysql flexible-server db create -d newdatabase
Not
MySQL için Azure Veritabanı bağlantıları 3306 bağlantı noktası üzerinden iletişim kurar. Kurumsal ağ içinden bağlanmaya çalışıyorsanız, 3306 numaralı bağlantı noktası üzerinden giden trafiğe izin verilmiyor olabilir. Bu durumda, 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 ana bilgisayar bilgilerini ve erişim kimlik bilgilerini sağlamanız gerekir.
az mysql flexible-server show --resource-group myresourcegroup --name mydemoserver
Sonuç JSON biçimindedir. fullyQualifiedDomainName ve administratorLogin bilgilerini not alın. JSON çıkışının bir örneği aşağıda verilmiştir:
{
"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 clı kullanarak bağlantı Bağlan ve test etme
MySQL için Azure veritabanı esnek sunucu, Azure CLı komutuyla MySQL sunucunuza bağlanmanızı sağlar az mysql flexible-server connect . Bu komut, veritabanı sunucunuza yönelik bağlantıyı test etmenize, hızlı bir başlangıç veritabanı oluşturmanıza ve mysql.exe veya MySQL çalışma ekranı 'nı yüklemeye gerek kalmadan doğrudan sunucunuza yönelik sorguları çalıştırmanıza olanak sağlar. Ayrıca, birden çok sorgu çalıştırmak için komutu etkileşimli modda çalıştırabilirsiniz.
Geliştirme ortamınızdan veritabanına bağlantıyı sınamak 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>
Örnek:
az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase
Başarılı bağlantı için aşağıdaki çıktıyı görmeniz gerekir:
Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.
Bağlantı başarısız olursa, şu çözümleri deneyin:
- İstemci makinenizde 3306 bağlantı noktasının açık olup olmadığını denetleyin.
- sunucu yöneticinizin Kullanıcı adı ve parolası doğruysa
- istemci makineniz için güvenlik duvarı kuralı yapılandırdıysanız
- sunucunuzu sanal ağ 'da özel erişim ile yapılandırdıysanız, istemci makinenizin aynı sanal ağda bulunduğundan emin olun.
Bağımsız değişkenini kullanarak tek bir sorgu yürütmek için aşağıdaki komutu çalıştırın --querytext -q .
az mysql flexible-server connect -n <server-name> -u <username> -p "<password>" -d <database-name> --querytext "<query text>"
Örnek:
az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase -q "select * from table1;" --output table
Komutunu kullanma hakkında daha fazla bilgi için az mysql flexible-server connect bağlanma ve sorgu belgelerine bakın.
mysql komut satırı istemcisini kullanarak Bağlan
Esnek sunucunuzu özel erişim (VNet tümleştirmesi) kullanarak oluşturduysanız, sunucunuza aynı sanal ağ içindeki bir kaynaktan sunucunuza bağlanmanız gerekir. Bir sanal makine oluşturabilir ve bunu esnek sunucunuz ile oluşturulan sanal ağa ekleyebilirsiniz. Daha fazla bilgi edinmek için özel erişim belgelerini yapılandırma konusuna bakın.
Ortak erişim (izin verilen IP adresleri) kullanarak esnek sunucunuzu oluşturduysanız, yerel IP adresinizi sunucunuzdaki güvenlik duvarı kuralları listesine ekleyebilirsiniz. Adım adım yönergeler için güvenlik duvarı kuralları oluşturma veya yönetme belgelerini inceleyin.
Yerel ortamınızdan sunucusuna bağlanmak için mysql.exe ya da MySQL çalışma ekranı kullanabilirsiniz. MySQL için Azure veritabanı esnek sunucu, istemci uygulamalarınızı, daha önce Güvenli Yuva Katmanı (SSL) olarak bilinen Aktarım Katmanı Güvenliği (TLS) kullanarak MySQL hizmetine bağlamayı destekler. TLS, veritabanı sunucunuz ile istemci uygulamalarınız arasında şifrelenmiş ağ bağlantıları sağlayan ve uyumluluk gereksinimlerine bağlı olmanızı sağlayan bir endüstri standardı protokolüdür. MySQL esnek sunucunuza bağlanmak için, sertifika yetkilisi doğrulaması için genel SSL sertifikasını indirmeniz gerekir. şifrelenmiş bağlantılarla bağlantı kurma veya SSL 'yi devre dışı bırakma hakkında daha fazla bilgi edinmek için Bağlan bkz. MySQL için Azure veritabanı-şifreli bağlantılar ile esnek sunucu belgeleri.
Aşağıdaki örnek, MySQL komut satırı arabirimini kullanarak esnek sunucunuza nasıl bağlanılacağını gösterir. Önce bir daha yüklenmemişse MySQL komut satırını yükleyeceksiniz. SSL bağlantıları için gereken Digiccertglobalrootca sertifikasını indirirsiniz. TLS/SSL sertifika doğrulamasını zorlamak için--SSL-Mode = REQUIRED bağlantı dizesi ayarını kullanın. Yerel sertifika dosyası yolunu--SSL-CA parametresine geçirin. Değerleri gerçek sunucu adı ve parolasıyla 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
Esnek sunucunuzu ortak erişim kullanarak sağladıysanız, aşağıda gösterildiği gibi önceden yüklenmiş MySQL istemcisini kullanarak esnek sunucunuza bağlanmak için Azure Cloud Shell de kullanabilirsiniz:
Esnek sunucunuza bağlanmak için Azure Cloud Shell kullanabilmeniz için, Azure Cloud Shell ağ üzerinden esnek sunucunuza erişim izni vermeniz gerekir. Bunu başarmak için, MySQL esnek sunucunuz için Azure portal ağ dikey penceresine gidebilir ve güvenlik duvarı bölümündeki kutuyu, 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" diyen ve ayarı sürdürmek için Kaydet ' e tıklayabilirsiniz.
Not
Azure 'daki herhangi bir Azure hizmetinden bu sunucuya genel erişime Izin ver ' in yalnızca geliştirme veya test için kullanılması gerekir. Güvenlik duvarını, diğer müşterilerin aboneliklerinden gelen bağlantılar da dahil olmak üzere herhangi bir Azure hizmetine veya varlığına ayrılan IP adreslerinden gelen bağlantılara izin verecek şekilde yapılandırır.
Azure Cloud Shell başlatmak için dene ' ye tıklayın ve 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
Azure Cloud Shell kullanarak esnek sunucunuza bağlanırken--SSL = true parametresini kullanmanız gerekir;--SSL-Mode = gereklı değil. Birincil neden Azure Cloud Shell,--SSL parametresi gerektiren MariaDB dağılımda önceden yüklenmiş mysql.exe istemcisi ile birlikte gelir.
Daha önce komutu takip eden esnek sunucunuza bağlanırken aşağıdaki hata iletisini görürseniz, daha önce bahsedilen "Azure 'daki herhangi bir Azure hizmetinden ortak erişime Izin ver" seçeneğini kullanarak güvenlik duvarı kuralını ayarlamayı kaçırdınız veya seçenek kaydedilmez. Lütfen güvenlik duvarını ayarlamayı yeniden deneyin ve tekrar deneyin.
Hata 2002 (HY000): MySQL sunucusuna bağlanılamıyor <servername> (115)
Kaynakları temizleme
Bu kaynaklara başka bir hızlı başlangıç/öğretici için gereksinim duymuyorsanız aşağıdaki komutu çalıştırarak kaynakları silebilirsiniz:
az group delete --name myresourcegroup
Yalnızca yeni oluşturulan sunucuyu silmek istiyorsanız az mysql server delete komutunu çalıştırabilirsiniz.
az mysql flexible-server delete --resource-group myresourcegroup --name mydemoserver