İçeriğe geç
İçindekiler
Web Siteleri

Veritabanınıza SSH Tüneli Üzerinden Bağlanma

Makine çevirisi. İngilizce orijinal mevcuttur.

Sitenizin veritabanı yalnızca sunucunun kendi loopback adresinden gelen bağlantıları dinler, bu yüzden TablePlus, Sequel Ace, DBeaver veya MySQL Workbench gibi bir masaüstü aracı ona doğrudan ulaşamaz. Bir SSH tüneli, bu araçlara veritabanına yönlendirilmiş yerel bir port sağlar; verilerinize MySQL'i internete açmadan düzgün bir GUI ile erişmenizin yolu budur.

Tünele Neden İhtiyaç Duyulur

Web Siteleri (Siteler) bölümünü açın, siteye tıklayın, ardından Veritabanı seçeneğine tıklayın. Bağlantı bilgileri kartı, ana makineyi 127.0.0.1 ve portu 3306 olarak gösterir. Bu bir yer tutucu değildir: veritabanı gerçekten de yalnızca üzerinde çalıştığı makineden gelen bağlantıları kabul eder. Genel internet üzerinden hiçbir şey 3306 portuna ulaşamaz, bu da tüm bir saldırı sınıfını ortadan kaldırır.

Bir SSH tüneli bu açığı güvenli bir şekilde kapatır. SSH istemciniz dizüstü bilgisayarınızda bir port açar, ona gönderdiğiniz her şeyi şifreler ve sanki yerel bir süreç bağlanmış gibi bunu sunucunun içinden veritabanına iletir.

KPanel'de bağlantı bilgilerini gösteren Veritabanı sekmesi

Önce İhtiyacınız Olanlar

Bir tünel bir SSH bağlantısıdır, bu yüzden bunların hiçbirinin çalışması için siteye kayıtlı bir SSH anahtarına ihtiyacınız vardır. Önce Bir Siteye SSH Anahtarı Ekleme makalesini takip edin, ardından buraya geri dönün.

Dört şeyi toplayın:

  • SSH ana makinesi, portu ve kullanıcı adı, Ayarlar, ardından SSH Anahtarları bölümünden, Bağlantı bilgileri kartında.
  • Veritabanı adı, kullanıcı adı ve parola, Veritabanı sekmesinden. Parolayı görmek için göz simgesine, panonuza kopyalamak için kopyala simgesine tıklayın.

Veritabanı sekmesi No database provisioned for this site type (Bu site türü için veritabanı sağlanmamış) diyorsa, bu sitenin bir veritabanı yoktur. Statik siteler ve bazı Node.js siteleri veritabanı olmadan oluşturulur.

Bir Terminalden Tüneli Açma

Genel yapı şöyledir: SSH bağlantısının karşı tarafındaki 127.0.0.1:3306 portuna yerel bir portu yönlendirin.

ssh -N -L 3307:127.0.0.1:3306 <ssh-username>@<ssh-host> -p <ssh-port>
  • -L 3307:127.0.0.1:3306 makinenizde 3307 portunu açar ve bunu sunucunun loopback arayüzündeki 3306 portuna yönlendirir.
  • -N bir kabuk çalıştırmayın, sadece tüneli açık tutun demektir.
  • Bu site için kullanılan anahtar varsayılan anahtarınız değilse -i /path/to/key ekleyin.

Bu terminal penceresini çalışır halde bırakın. O açıkken, dizüstü bilgisayarınızdaki 127.0.0.1:3307 sitenin veritabanıdır.

Yerelde 3306 yerine 3307 kullanın. Kendi makinenizde MySQL veya MariaDB kuruluysa, bu zaten 3306'yı kullanıyordur ve tünel "address already in use" (adres zaten kullanımda) hatasıyla bağlanamaz. Boşta olan herhangi bir yerel port işe yarar.

Veritabanı İstemcinizi Tünele Yönlendirme

GUI istemcinizde, şu değerlerle sade bir MySQL bağlantısı oluşturun:

AlanDeğer
Host (Ana Makine)127.0.0.1
Port3307 (yönlendirdiğiniz yerel port)
User (Kullanıcı)Veritabanı sekmesindeki Username (Kullanıcı Adı)
Password (Parola)Veritabanı sekmesindeki Password (Parola)
Database (Veritabanı)Veritabanı sekmesindeki Veritabanı adı

Host alanına SSH ana makinesini yazmayın. İstemci açısından, kendi makinenizdeki bir veritabanıyla konuşuyormuş gibi görünür.

Yerleşik SSH Sekmesine Sahip İstemciler

TablePlus, Sequel Ace, DBeaver ve MySQL Workbench, tüneli kendileri yönetebilir; bu da bir terminali açık tutma zorunluluğunu ortadan kaldırır. İki alan grubunu doldurun:

  • SSH bölümü: SSH Anahtarları sayfasından ana makine, port, kullanıcı adı ve özel anahtar dosyası.
  • Veritabanı bölümü: ana makine 127.0.0.1, port 3306, artı Veritabanı sekmesindeki veritabanı adı, kullanıcı ve parola.

İstemci tüneli oluştururken, veritabanı bölümünde yerel yönlendirilen portunuz yerine 3306 kullanın. İstemci, sunucunun bakış açısından bağlanır, bu yüzden gerçek portu görür.

Bunun Yerine phpMyAdmin Kullanma

Yalnızca bir tabloya hızlıca göz atmanız gerekiyorsa, hiç tünele ihtiyacınız yoktur. Veritabanı sekmesinde, phpMyAdmin'i Aç düğmesine sahip bir phpMyAdmin kartı bulunur. Sizi KPanel üzerinden oturum açtırır, bu yüzden hatırlanması gereken ayrı bir parola yoktur ve zaten bu sitenin veritabanına yönlendirilmiş olarak yeni bir sekmede açılır.

phpMyAdmin, göz atma, tek seferlik bir sorgu çalıştırma veya bir değeri kontrol etme için daha hızlı seçenektir. Tünel üzerinden masaüstü istemcisi ise büyük dışa aktarmalar, şema çalışmaları ve betikleştirmek istediğiniz her şey için daha iyidir. Tarayıcı yolu için phpMyAdmin Kullanımı makalesine bakın.

Tünel Üzerinden Sorgu Çalıştırma ve Dökümler Alma

Tünel açıkken, standart komut satırı araçları normal şekilde çalışır, yerel yönlendirilmiş portunuza yönlendirilmiş olarak:

mysql -h 127.0.0.1 -P 3307 -u <db-user> -p <db-name>

mysqldump -h 127.0.0.1 -P 3307 -u <db-user> -p <db-name> > backup.sql

Elle alınan bir döküm, bir yedekleme stratejisi değil, pratik bir kopyadır. Yalnızca onu çalıştırdığınız andaki kadar güncel kalır ve onu çalıştırdığınız dizüstü bilgisayarda yaşar. KapsuleHost zaten sitenin otomatik günlük yedeklerini alır ve bunları 30 gün boyunca saklar. Yerel bir .sql dosyasına güvenmeden önce Yedek Alma makalesine bakın.

Sorun Giderme

Tüneli açarken "Address already in use" hatası. Makinenizde o yerel portu zaten kullanan bir şey var. Başka bir port seçin, örneğin -L 3399:127.0.0.1:3306, ve istemcinizdeki portu buna uyacak şekilde değiştirin.

Veritabanı istemcisinden "Connection refused" hatası. Tünel ayakta değil. SSH terminalinin hâlâ çalıştığını ve bir hata yazdırmadığını, istemcinizdeki portun -L argümanındaki yerel portla eşleştiğini kontrol edin.

SSH bağlanıyor ama istemci yine de zaman aşımına uğruyor. 127.0.0.1:3306 adresine yönlendirdiğinizi, genel ana makine adına değil, doğrulayın. Genel ada yönlendirmek, sunucudan veritabanına internet üzerinden ulaşmasını istemek anlamına gelir ki tam olarak engellenen şey budur.

"Access denied for user" hatası. SSH girişi başarılı oldu ama MySQL kimlik bilgileri yanlış. Kullanıcı adını ve parolayı yeniden yazmak yerine Veritabanı sekmesindeki kopyala simgelerini kullanarak tekrar kopyalayın ve doğru veritabanı adına bağlandığınızı kontrol edin.

MySQL'e ulaşmadan önce "Permission denied (publickey)" hatası. Bu, veritabanı katmanı değil, SSH katmanıdır. Bir Siteye SSH Anahtarı Ekleme makalesindeki sorun giderme bölümünü inceleyin.

Sırada Ne Var

Bu yardımcı oldu mu?

Yapay zeka mısınız? Bu sayfayı Markdown olarak okuyun

İlgili makaleler

SFTP ile Bağlanma: FileZilla, Cyberduck ve Komut SatırıSFTP (Secure File Transfer Protocol), sitenizin sunucu üzerindeki dosyalarına doğrudan erişim sağlar.…SSL Sertifikaları ve HTTPSBu makale, SSL'in ne olduğunu sade bir dille açıklar, KapsuleHost'un sitelerinizde SSL'i nasıl otomatik olarak yönettiğini anlatır ve sertifikanızla ilgili bir…Web Siteleri: Nereden BaşlamalıKapsuleHost'ta web sitesi barındırmanın nasıl işlediği, bir sitenin her sekmesinde nelerin bulunduğu ve önünüzdeki iş için hangi kılavuzu okumanız gerektiği.…Site Çalışma Süresi İzlemeKapsuleHost'taki her site otomatik olarak her 60 saniyede bir kontrol edilir ve Uptime sekmesi size sonucu gösterir: mevcut durum, çalışma süresi yüzdesi, yanıt…

Hâlâ takıldınız mı?

Hesabınızı bilen Kora'ya sorun ya da ekibimizle iletişime geçin.

Bize UlaşınDesteğe e-posta gönder