MySQL için Azure Veritabanı - Esnek Sunucu'da bağlantı sorunlarını giderme

ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu MySQL için Azure Veritabanı - Esnek 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?

MySQL Community Edition, bağlantıları her bağlantı için bir iş parçacığı kullanarak yönetir. Sonuç olarak, her kullanıcı bağlantısı mysqld işleminde ayrılmış bir işletim sistemi iş parçacığı alır.

Bu tür bağlantı işlemeyle ilgili olası sorunlar vardır. Örneğin, boşta bağlantılar olsalar bile çok sayıda kullanıcı bağlantısı varsa bellek kullanımı görece yüksektir. Ayrıca, binlerce kullanıcı bağlantısıyla çalışırken daha yüksek düzeyde iç sunucu çekişmesi ve bağlam değiştirme yükü vardır.

Yaygın bağlantı hatalarını tanılama

Esnek MySQL için Azure Veritabanı sunucu örneğinizde bağlantı sorunları yaşandığında, ilgili üç katmandan herhangi birinde sorunlar olabileceğini unutmayın: istemci cihazı, ağ veya MySQL için Azure Veritabanı esnek sunucu örneğiniz.

Sonuç olarak, bağlantı hatalarını her tanılarken aşağıdakilerin tüm ayrıntılarını göz önünde bulundurmayı unutmayın:

  • aşağıdakiler dahil olmak üzere istemci:
    • Yapılandırma (şirket içi, Azure VM vb.) veya DBA makinesi).
    • İşletim Sistemi.
    • Yazılım ve sürümler.
  • Bağlan ion dizesi ve dahil edilen parametreler.
  • Ağ topolojisi (aynı bölge? aynı AZ? güvenlik duvarı kuralları? yönlendirme).
  • kullanımdaysa Bağlan ion havuzu (parametreler ve yapılandırma).

Veritabanı bağlantı sorununun tek bir istemci cihazını mı yoksa birkaç istemci cihazını mı etkilediğini belirlemek de önemlidir. Hatalar birkaç istemciden yalnızca birini etkiliyorsa sorun büyük olasılıkla bu istemcidedir. Ancak tüm istemciler aynı hatayla karşılaşıyorsa sorunun veritabanı sunucusu tarafında veya aradaki ağda olması daha olasıdır.

Özellikle bir uygulama çok kısa bir süre içinde ani bağlantı artışı yaşadığında iş yükünün aşırı yüklenme olasılığını da dikkate almayı unutmayın. Bunu araştırmak için "Toplam Bağlan ions", "Etkin Bağlan ions" ve "Durduruldu Bağlan ions" gibi ölçümleri kullanabilirsiniz.

bir istemci cihazından veya uygulamadan bağlantı kurduğunuzda, mysql'deki ilk önemli çağrı, IP adresine sağlanan uç noktadan DNS çevirisi gerçekleştiren getaddrinfo'ya yöneliktir. Adres alınamazsa, MySQL "HATA 2005 (HY000): Bilinmeyen MySQL sunucu konağı 'mysql-example.mysql.database.azure.com' (11)" ve sonundaki sayı (11, 110 vb.) gibi bir hata iletisi gösterir.

İstemci tarafı hatası 2005 kodları

Aşağıdaki tabloda bazı istemci tarafı hatası 2005 kodları için hızlı başvuru notları gösterilmektedir.

ERROR 2005 kodu Notlar
(11) "EAI_SYSTEM - sistem hatası" İstemci tarafındaki DNS çözümlemesinde bir hata var. MySQL için Azure Veritabanı esnek sunucu sorunu değil. Sorun gidermek için istemci üzerinde dig/nslookup komutunu kullanın.
(110) "ETIMEDOUT - Bağlantı zaman aşımına uğradı" İstemcinin DNS sunucusuna bağlanırken zaman aşımı oluştu. MySQL için Azure Veritabanı esnek sunucu sorunu değil. Sorun gidermek için istemci üzerinde dig/nslookup komutunu kullanın.
(0) "ad bilinmiyor" Belirtilen ad, DNS tarafından çözümlenemedi. İstemcideki girişi denetleyin. Bu büyük olasılıkla esnek MySQL için Azure Veritabanı sunucuyla ilgili bir sorun değildir.

mysql'deki ikinci çağrı yuva bağlantısıyla yapılır ve "HATA 2003 (HY000): 'mysql-example.mysql.database.azure.com' (111)" üzerindeki MySQL için Azure Veritabanı esnek sunucuya bağlanılamıyor, sonundaki numara (99, 110, 111, 113 vb.) gibi bir hata iletisine bakılır.

İstemci tarafı hatası 2003 kodları

Aşağıdaki tabloda bazı istemci tarafı hatası 2003 kodları için hızlı başvuru notları gösterilmektedir.

ERROR 2003 kodu Notlar
(99) "EADDRNOTAVAIL - İstenen adres atanamıyor" Bu hataya istemci tarafında değil MySQL için Azure Veritabanı esnek sunucu neden olmaz.
(110) "ETIMEDOUT - Bağlantı zaman aşımına uğradı" Sağlanan IP adresine bağlanırken zaman aşımı oluştu. Büyük olasılıkla bir güvenlik (güvenlik duvarı kuralları) veya ağ (yönlendirme) sorunudur. Bu genellikle esnek MySQL için Azure Veritabanı sunucuyla ilgili bir sorun değildir. Sorun gidermek için istemci cihazında nc/telnet/TCPtraceroute komutunu kullanın.
(111) "ECONNREFUSED - Bağlantı reddedildi" Paketler hedef sunucuya ulaştı ancak sunucu bağlantıyı reddetti. Yanlış sunucuya veya yanlış bağlantı noktasına bağlanma girişimi yapılmış olabilir. Bu, hedef hizmetin (esnek sunucu MySQL için Azure Veritabanı) devre dışı kalması, yük devretmeden kurtarılması veya kilitlenme kurtarmasından geçmesi ve henüz bağlantıları kabul etmemesiyle de ilgili olabilir. Bu sorun istemci tarafında veya sunucu tarafında olabilir. Sorun gidermek için istemci cihazında nc/telnet/TCPtraceroute komutunu kullanın.
(113) "EHOSTUNREACH - Ana bilgisayara ulaşılamıyor" İstemci cihazının yönlendirme tablosu, veritabanı sunucusunun bulunduğu ağın yolunu içermiyor. İstemci cihazının ağ yapılandırmasını denetleyin.

Diğer hata kodları

Veritabanı sunucusuyla ağ bağlantısı başarıyla kurulduktan sonra oluşan sorunlarla ilgili diğer bazı hata kodlarının hızlı başvuru notları aşağıdaki tabloda gösterilmektedir.

Hata Kodu Notlar
HATA 2013: "MySQL sunucusuyla bağlantı kesildi" Bağlantı kuruldu ancak daha sonra kesildi. MySQL olmayan bir şeye bağlantı denenirse (örneğin, bağlantı noktası 22'de SSH'ye bağlanmak için bir MySQL istemcisi kullanmak gibi) bu durum oluşabilir. Süper kullanıcı oturumu sonlandırırsa da bu durum oluşabilir. Veritabanı oturumu zaman aşımına uğradıysa da oluşabilir. Veya bağlantı kurulduktan sonra veritabanı sunucusundaki sorunları belirtebilir. Bu hata, istemci bağlantısının kullanım ömrü boyunca herhangi bir zamanda gerçekleşebilir. Veritabanında ciddi bir sorun olduğunu gösterebilir.
HATA 1040 "Çok fazla bağlantı var" Bağlı veritabanı istemcilerinin sayısı zaten yapılandırılan en fazla sayıda. Veritabanında neden bu kadar çok bağlantı kurulduğunun değerlendirmesi gerekir.
HATA 1045 "Kullanıcı için erişim reddedildi" İstemci yanlış bir kullanıcı adı veya parola sağladığından veritabanı erişimi reddetti.
HATA 2006 "MySQL sunucusu kayboldu" Önceki tabloda yer alan HATA 2013 "MySQL sunucusuyla bağlantı kesildi" girişine benzer.
HATA 1317 "Sorgu yürütmesi kesintiye uğradı" Birincil kullanıcı bağlantıyı değil sorguyu durdurduğunda istemcinin aldığı hata.
HATA 1129 "'1.2.3.4' ana bilgisayarı birçok bağlantı hatası nedeniyle engellendi" 'mysqladmin flush-hosts' ile engellemeyi kaldırın" - Tek bir makinedeki tüm istemciler, bu makinenin bir istemcisi MySQL'e bağlanmak için birkaç kez yanlış protokolü kullanmayı denerse engellenir (MySQL bağlantı noktasına telneing bir örnektir). Hata iletisinde belirtildiği gibi, sorunu gidermek için veritabanı yönetici kullanıcısının FLUSH HOSTS; komutunu çalıştırması gerekir.

Dekont

Bağlantı hataları hakkında daha fazla bilgi için esnek MySQL için Azure Veritabanı sunucuyla ilgili bağlantı sorunlarını araştırma blog gönderisine bakın.

Sonraki adımlar

En önemli sorularınızın eş yanıtlarını bulmak veya soru göndermek veya yanıtlamak için Stack Overflow'u ziyaret edin.