İçeriğe geç

Veritabanı bağlantıyı reddediyor: bağlantı nasıl kurulur

Orta 20 dk Güncellendi:

Kısa cevap

Veritabanı bağlantıyı reddettiğinde en yaygın nedenler hatalı oturum açma bilgileri, veritabanının çalışmıyor olması, ağ sorunları veya uzak bağlantılara izin vermeyen yapılandırmadır. Hizmetin çalışıp çalışmadığını kontrol edin, yerel makineden bağlantıyı test edin ve veritabanı günlüklerini inceleyin.

Sorun nasıl anlaşılır

  • Uygulama veritabanına bağlanırken hata bildiriyor
  • İleti 'connection refused' veya 'can't connect' içeriyor
  • Bağlantı yerel olarak çalışıyor ancak uzak makineden çalışmıyor
  • Veritabanı bağlanmaya çalışırken çöküyor veya yeniden başlıyor
  • Hata yalnızca üretim ortamında ortaya çıkıyor

En yaygın nedenler

Veritabanı çalışmıyor

Veritabanı hizmeti durdurulmuş olabilir veya kaynak yetersizliği nedeniyle çöküyor olabilir. Hizmet durumunu ve günlükleri kontrol edin.

Hatalı bağlantı bilgileri

Yanlış ana bilgisayar adı, bağlantı noktası, kullanıcı adı veya parola bağlantı kurulmasını engeller. Uygulama yapılandırmasını kontrol edin.

Ağ sorunları veya güvenlik duvarı

Güvenlik duvarı veya ağ kuralları veritabanı bağlantı noktasını engelliyor olabilir. Bağlantı noktasının istemci makineden erişilebilir olup olmadığını kontrol edin.

Veritabanı uzak bağlantılara izin vermiyor

Varsayılan olarak birçok veritabanı yalnızca yerel bağlantıları kabul eder. `bind-address` veya `listen_addresses` gibi parametrelerin yapılandırılması gerekir.

Çok fazla etkin bağlantı

İzin verilen maksimum sayıya ulaşıldıysa veritabanı yeni bağlantıları reddedebilir. `max_connections` değerini kontrol edin ve etkin olmayan bağlantıları kapatın.

Adım adım çözüm

  1. 1

    Veritabanı hizmetinin çalışıp çalışmadığını kontrol edin

    Windows'ta services.msc dosyasını açın ve veritabanı hizmetini bulun (ör. MySQL, PostgreSQL). Linux'ta systemctl status mysql veya systemctl status postgresql komutunu kullanın. Hizmet çalışmıyorsa sudo systemctl start mysql komutuyla (veya veritabanınıza uygun komutla) başlatın.

  2. 2

    Yerel makineden bağlantıyı test edin

    Veritabanının çalıştığı makineden komut satırı aracıyla (ör. mysql -u root -p veya psql -U postgres) bağlanmayı deneyin. Bu başarılı olursa sorun ağda veya uzak erişimdedir.

  3. 3

    Bağlantı bilgilerini kontrol edin

    Ana bilgisayar, bağlantı noktası, kullanıcı adı ve parolanın doğru olduğundan emin olun. Uygulamada yapılandırma dosyalarını veya ortam değişkenlerini kontrol edin. localhost mı yoksa 127.0.0.1 mi kullandığınıza dikkat edin.

  4. 4

    Bağlantı noktasının erişilebilir olup olmadığını kontrol edin

    İstemci makineden telnet <host> <port> veya nc -zv <host> <port> komutunu deneyin. Bağlantı noktası kapalıysa sunucudaki güvenlik duvarını ve ağ kurallarını kontrol edin. Windows'ta PowerShell'de Test-NetConnection -ComputerName <host> -Port <port> komutunu kullanın.

  5. 5

    Veritabanını uzak bağlantıları kabul edecek şekilde yapılandırın

    Değişiklik yapmadan önce yapılandırma dosyalarının yedeğini alın. MySQL için my.cnf veya my.ini dosyasındaki bind-address değerini uygun arabirimin adresine değiştirin (ör. 0.0.0.0 yalnızca erişim güvenlik duvarıyla kısıtlanmışsa) ve hizmeti yeniden başlatın; ardından kullanıcının ana bilgisayara göre izinlerini kontrol edin. PostgreSQL için postgresql.conf dosyasındaki listen_addresses değerini değiştirin ve pg_hba.conf dosyasına uygun bir giriş ekleyin. SQL Server için SQL Server Configuration Manager'da TCP/IP protokolünü etkinleştirin, bağlantı noktasını kontrol edin ve hizmeti yeniden başlatın.

  6. 6

    Maksimum bağlantı sayısını kontrol edin

    Yönetici olarak veritabanına bağlanın ve mevcut bağlantı sayısı için sorgu çalıştırın (ör. MySQL için SHOW STATUS LIKE 'Threads_connected';). Maksimuma yakınsa max_connections değerini artırın veya uygulamayı kullanılmayan bağlantıları kapatacak şekilde optimize edin.

  7. 7

    Veritabanı günlüklerini inceleyin

    Veritabanı günlükleri (ör. MySQL error log, PostgreSQL log veya sistem journal) genellikle bağlantının reddedilmesinin tam nedenini içerir. Kimlik doğrulama veya ağ sorunlarıyla ilgili hata iletilerini arayın.

  8. 8

    Veritabanını ve uygulamayı yeniden başlatın

    Bazen veritabanı hizmetinin ve bağlanan uygulamanın yeniden başlatılması gerekir. sudo systemctl restart mysql veya uygun komutu kullanın. Üretimde yeniden başlatmayı kesinti süresine denk gelecek şekilde planlayın. Ardından uygulamayı yeniden başlatın ve hatanın oluşup oluşmadığını kontrol edin.

Hiçbiri yardımcı olmazsa

Yukarıdakilerin tümünü kontrol ettiyseniz ve veritabanı hâlâ bağlantıyı reddediyorsa aşağıdakileri göz önünde bulundurun:

  • Veritabanı ve sürücü sürümünü kontrol edin: Uyumsuz sürümler bağlantı hatalarına neden olabilir.
  • Başka bir istemciyle test edin: Uygulamadaki sorunu dışlamak için başka bir bilgisayar veya araçla (ör. DBeaver, pgAdmin) deneyin.
  • Güvenlik duvarını geçici olarak yalnızca test makinesinde devre dışı bırakın: Bunu asla üretim sunucusunda yapmayın; yapmanız gerekiyorsa kısa süreliğine yapın ve güvenlik duvarını mutlaka yeniden etkinleştirin.
  • Belgelere başvurun: Veritabanınızın resmi belgelerine bakın.
  • Bir uzmana danışın: Sorun devam ederse daha deneyimli bir meslektaşınıza veya BT desteğine başvurun.

Tekrarlanmaması için

  • Veritabanını ve sürücüleri düzenli olarak güncelleyin.
  • Güçlü parolalar kullanın ve erişimi gerekli IP adresleriyle sınırlayın.
  • Etkin bağlantı sayısını izleyin ve gerektiğinde sınırı artırın.
  • Üretime geçmeden önce bağlantıyı geliştirme ortamında test edin.

Ne zaman uzmana başvurmalı

Sunucu altyapısına erişiminiz yoksa veya veritabanı yapılandırmasını nasıl değiştireceğinizden emin değilseniz BT desteğine başvurun. Ayrıca veritabanı üretimdeyse ve kesinti riskini göze alamıyorsanız bunu daha deneyimli yöneticilerin yapması daha iyidir.

Yazılım ve ürün geliştirme · Özel uygulamalar, SaaS ve 4-8 haftada MVP

Sık sorulan sorular

Veritabanı neden uzak makineden bağlantıyı reddediyor ama yerel olarak çalışıyor?

Büyük olasılıkla veritabanı uzak bağlantıları kabul edecek şekilde yapılandırılmamıştır. `bind-address` (MySQL) veya `listen_addresses` (PostgreSQL) gibi parametreleri ve `pg_hba.conf` veya `mysql.user` tablosundaki izinleri kontrol edin.

Sorunun veritabanında mı yoksa uygulamada mı olduğunu nasıl anlarım?

Uygulamanın çalıştığı makineden komut satırı aracıyla veritabanına bağlanmayı deneyin. Bu başarılı olursa sorun uygulama yapılandırmasındadır. Başarısız olursa sorun veritabanında veya ağdadır.

'Too many connections' hatası ne anlama gelir?

Veritabanı izin verilen maksimum eşzamanlı bağlantı sayısına ulaşmıştır. `max_connections` değerini artırın veya uygulamayı bağlantıları doğru şekilde kapatacak şekilde optimize edin.

Paylaş
Çözüm bulamadınız mı?AI BT asistanı 7/24 hizmetinizde. Sorunu anlatın veya hatanın ekran görüntüsünü gönderin, durumunuza özel talimat alın.AI BT asistanına sorun