Yeniden yönlendirme ile MySQL için Azure Veritabanı'na bağlanma
ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu
Önemli
MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?
Bu makalede, bir uygulamanın yeniden yönlendirme moduyla MySQL için Azure Veritabanı sunucunuza nasıl bağlanacakları açıklanmaktadır. Yeniden yönlendirme, uygulamaların doğrudan arka uç sunucu düğümlerine bağlanmasına izin vererek istemci uygulamaları ile MySQL sunucuları arasındaki ağ gecikme süresini azaltır.
Başlamadan önce
Azure Portal oturum açın. Altyapı sürümü 5.6, 5.7 veya 8.0 olan bir MySQL için Azure Veritabanı sunucusu oluşturun.
Ayrıntılar için bkz. Azure portalını veya Azure CLI'yı kullanarak MySQL için Azure Veritabanı sunucusu oluşturma.
Önemli
Yeniden yönlendirme şu anda MySQL için Azure Veritabanı için Özel Bağlantı ile desteklenmemektedir.
Yeniden yönlendirmeyi etkinleştirme
MySQL için Azure Veritabanı sunucunuzda parametresini redirect_enabled
ON
yeniden yönlendirme moduyla bağlantılara izin verecek şekilde yapılandırın. Bu sunucu parametresini güncelleştirmek için Azure portalını veya Azure CLI'yı kullanın.
PHP
PHP uygulamalarında yeniden yönlendirme desteği, Microsoft tarafından geliştirilen mysqlnd_azure uzantısı aracılığıyla sağlanır.
mysqlnd_azure uzantısı, PECL aracılığıyla PHP uygulamalarına eklenebilir ve resmi olarak yayımlanan PECL paketi aracılığıyla uzantının yüklenmesi ve yapılandırılması kesinlikle önerilir.
Önemli
PHP mysqlnd_azure uzantısında yeniden yönlendirme desteği şu anda önizleme aşamasındadır.
Yeniden yönlendirme mantığı
Önemli
1.1.0 sürümünden itibaren yeniden yönlendirme mantığı/davranışı güncelleştirildi ve sürüm 1.1.0+ kullanılması önerilir.
Yeniden yönlendirme davranışı değeri mysqlnd_azure.enableRedirect
tarafından belirlenir. Aşağıdaki tabloda, 1.1.0+ sürümünden itibaren bu parametrenin değerine göre yeniden yönlendirme davranışı özetlenmiştir.
mysqlnd_azure uzantısının eski bir sürümünü (sürüm 1.0.0-1.0.3) kullanıyorsanız, yeniden yönlendirme davranışı değerine mysqlnd_azure.enabled
göre belirlenir. Geçerli değerler şunlardır off
(aşağıdaki tabloda belirtilen davranışa benzer şekilde davranır) ve on
(aşağıdaki tabloda olduğu gibi preferred
davranır).
mysqlnd_azure.enableRedirect değeri | Davranış |
---|---|
off veya 0 |
Yeniden yönlendirme kullanılmaz. |
on veya 1 |
- Bağlantı sürücü tarafında SSL kullanmıyorsa, bağlantı yapılmaz. Şu hata döndürülür: "mysqlnd_azure.enableRedirect açık, ancak SSL seçeneği bağlantı dizesi ayarlanmadı. Yeniden yönlendirme yalnızca SSL ile mümkündür." - Sürücü tarafında SSL kullanılıyorsa, ancak yeniden yönlendirme sunucuda desteklenmiyorsa, ilk bağlantı durdurulur ve şu hata döndürülür: "MySQL sunucusunda yeniden yönlendirme etkinleştirilmediğinden veya ağ paketi yeniden yönlendirme protokollerini karşılamadığından Bağlan iptal edildi." - MySQL sunucusu yeniden yönlendirmeyi destekliyorsa ancak yeniden yönlendirilen bağlantı herhangi bir nedenle başarısız olduysa, ilk proxy bağlantısını da durdurun. Yeniden yönlendirilen bağlantının hatasını döndür. |
preferred veya 2 (varsayılan değer) |
- mysqlnd_azure mümkünse yeniden yönlendirmeyi kullanır. - Bağlantı sürücü tarafında SSL kullanmıyorsa, sunucu yeniden yönlendirmeyi desteklemiyorsa veya yeniden yönlendirilen bağlantı, proxy bağlantısı hala geçerli bir bağlantıyken önemli olmayan bir nedenle bağlanamıyorsa, ilk ara sunucu bağlantısına geri döner. |
kullanarak mysqlnd_azure.enableRedirect
tek MySQL için Azure Veritabanı sunucuya başarılı bir bağlantı için, uyumluluk gereksinimlerine göre kök sertifikanızı birleştirmenin zorunlu adımlarını izlemeniz gerekir. Daha fazla bilgi için lütfen bağlantıyı ziyaret edin.
Belgenin sonraki bölümlerinde, PECL kullanarak uzantının mysqlnd_azure
nasıl yükleneceği ve bu parametrenin değerinin nasıl ayarlanacağı özetlenmiştir.
Ön Koşullar
- PHP sürümleri 7.2.15+ ve 7.3.2+
- PHP PEAR
- php-mysql
- MySQL sunucusu için Azure Veritabanı
PECL ile mysqlnd_azure yükleyin. Sürüm 1.1.0+'ın kullanılması önerilir.
sudo pecl install mysqlnd_azure
Aşağıdakini çalıştırarak uzantı dizinini (
extension_dir
) bulun:php -i | grep "extension_dir"
Dizinleri döndürülen klasöre değiştirin ve bu klasörde bulunduğundan emin olun
mysqlnd_azure.so
.Aşağıdakini çalıştırarak .ini dosyaları klasörünü bulun:
php -i | grep "dir for additional .ini files"
Dizinleri bu döndürülen klasöre değiştirin.
için
mysqlnd_azure
yeni bir .ini dosyası oluşturun. Modüller ini dosyalarının ad sırasına göre yüklendiğinden, adın alfabe sırasının mysqnld'den sonra olduğundan emin olun. Örneğin, .ini olarak adlandırılırsamysqlnd
10-mysqlnd.ini
mysqlnd ini değerini olarak20-mysqlnd-azure.ini
adlandırın.Yeni .ini dosyasının içine, yeniden yönlendirmeyi etkinleştirmek için aşağıdaki satırları ekleyin.
extension=mysqlnd_azure mysqlnd_azure.enableRedirect = on/off/preferred
Yeniden yönlendirmeyi onayla
Yeniden yönlendirmenin aşağıdaki örnek PHP koduyla yapılandırıldığını da onaylayabilirsiniz. adlı mysqlConnect.php
bir PHP dosyası oluşturun ve aşağıdaki kodu yapıştırın. Sunucu adını, kullanıcı adını ve parolayı kendi adınızla güncelleştirin.
<?php
$host = '<yourservername>.mysql.database.azure.com';
$username = '<yourusername>@<yourservername>';
$password = '<yourpassword>';
$db_name = 'testdb';
echo "mysqlnd_azure.enableRedirect: ", ini_get("mysqlnd_azure.enableRedirect"), "\n";
$db = mysqli_init();
//The connection must be configured with SSL for the redirection test
$link = mysqli_real_connect ($db, $host, $username, $password, $db_name, 3306, NULL, MYSQLI_CLIENT_SSL);
if (!$link) {
die ('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n");
}
else {
echo $db->host_info, "\n"; //if redirection succeeds, the host_info will differ from the hostname you used used to connect
$res = $db->query('SHOW TABLES;'); //test query with the connection
print_r ($res);
$db->close();
}
?>
Sonraki adımlar
- bağlantı dizesi hakkında daha fazla bilgi için bkz. Bağlan ion Dizeleri.