Web Siteleri
SSH Tüneli Üzerinden Veritabanınıza Bağlanma
Your site's MySQL server only listens on the server's own loopback address, so a desktop tool such as TablePlus, Sequel Ace, DBeaver or MySQL Workbench cannot dial it directly. An SSH tunnel gives…
Sitenizin MySQL sunucusu yalnızca sunucunun kendi loopback adresinde dinlediği için, TablePlus, Sequel Ace, DBeaver veya MySQL Workbench gibi bir masaüstü aracı bunu doğrudan çağıramaz. SSH tüneli bu araçlara veritabanına iletilen yerel bir port sağlar; bu şekilde MySQL'i internete açmadan verilerinize uygun bir GUI elde edersiniz.
Neden Tünel Gereklidir
Websites'i açın, sitenizi tıklayın, sonra Files'ı, ardından Database'i tıklayın. Connection details kartı host'u 127.0.0.1 olarak, portu 3306 olarak gösterir. Bu bir yer tutucu değildir: veritabanı gerçekten yalnızca üzerinde çalıştığı makineden gelen bağlantıları kabul eder. Kamu interneti üzerindeki hiç bir şey 3306 portuna ulaşamaz; bu, tüm bir saldırı sınıfını ortadan kaldırır.
SSH tüneli bu boşluğu güvenli bir şekilde kapatır. SSH istemciniz dizüstü bilgisayarınızda bir port açar, gönderdiğiniz her şeyi şifreler ve bunu sunucunun içinden veritabanına teslim eder; tıpkı yerel bir işlem bağlanmış gibi.

Önce İhtiyacınız Olanlar
Tünel bir SSH bağlantısı olduğundan, bunun herhangi bir şekilde çalışması için site'ye kaydedilmiş bir SSH anahtarınız olması gerekir. Önce SSH Anahtarlarını Bir Site'ye Ekleme konusunu izleyin, sonra buraya geri dönün.
Dört şey toplayın:
- SSH host, port ve kullanıcı adı, Files'tan, sonra SSH Keys'ten, Connection details kartından.
- Veritabanı adı, kullanıcı adı ve parola, Files'tan, sonra Database'den. Parolayı ortaya çıkarmak için göz simgesini ve parolayı panoınıza koymak için kopyala simgesini tıklayın.
Database sekmesi No database provisioned for this site type yazıyorsa, bu site'nin bir veritabanı yok demektir. Statik siteler ve bazı Node.js siteleri veritabanı olmadan oluşturulur.
Terminalden Tüneli Açma
Genel biçim: yerel bir portu SSH bağlantısının diğer tarafında 127.0.0.1:3306'a iletmektir.
ssh -N -L 3307:127.0.0.1:3306 <ssh-username>@<ssh-host> -p <ssh-port>
-L 3307:127.0.0.1:3306makinenizde 3307 portunu açar ve sunucunun loopback arayüzündeki 3306 portuna iletir.-Nshell çalıştırma, sadece tüneli açık tut demektir.- Bu site'nin anahtarı varsayılan olanınız değilse
-i /path/to/keyekleyin.
Bu terminal penceresini açık bırakın. Açık olduğu sürece, dizüstü bilgisayarınızdaki 127.0.0.1:3307 site'nin veritabanıdır.
Yerel olarak 3306 yerine 3307 kullanın. Kendi makinenizde MySQL veya MariaDB yüklü ise zaten 3306 kullanıyor olur ve tünel "address already in use" hatası ile bağlanamaz. Herhangi bir boş yerel port işe yarar.
Veritabanı İstemcinizi Tünele Yönlendirme
GUI istemcinizde bu değerlerle düz bir MySQL bağlantısı oluşturun:
| Alan | Değer |
|---|---|
| Host | 127.0.0.1 |
| Port | 3307 (ilettiğiniz yerel port hangisiyse) |
| User | Database sekmesindeki Username |
| Password | Database sekmesindeki Password |
| Database | Database sekmesindeki Database adı |
SSH host'unu Host alanına koymayın. İstemci açısından, kendi makinenizde bir veritabanı ile konuşuyor.
Yerleşik SSH Sekmesi Olan İstemciler
TablePlus, Sequel Ace, DBeaver ve MySQL Workbench tüneli kendileri yönetebilir; bu da terminal açık tutma gereksinimini ortadan kaldırır. İki alan grubunu doldurun:
- SSH section: SSH Keys sayfasındaki host, port, kullanıcı adı ve özel anahtar dosyası.
- Database section: host
127.0.0.1, port3306, artı Database sekmesindeki veritabanı adı, kullanıcı ve parola.
İstemci tüneli oluşturduğunda, veritabanı bölümünde yerel iletilen portunuz yerine 3306 kullanın. İstemci sunucunun bakış açısından bağlanıyor olduğundan, gerçek portu görür.
Bunun Yerine phpMyAdmin Kullanmak
Yalnızca bir tabloyu hızlıca görmek istiyorsanız, tünele hiç ihtiyacınız yok. Database sekmesi bir phpMyAdmin kartı ve bir Open phpMyAdmin düğmesi içerir. KPanel aracılığıyla sizi imzalar, bu nedenle hatırlanacak ayrı bir parola yoktur ve bu site'nin veritabanına işaret ederek halihazırda yeni bir sekmede açılır.
phpMyAdmin, göz atma, tek seferlik sorgu çalıştırma veya bir değeri kontrol etme için daha hızlı seçenektir. Büyük dışa aktarımlar, şema çalışması ve komut dosyası yapmak istediğiniz her şey için masaüstü istemci tünel üzerinde daha iyidir. Tarayıcı yolu için Using phpMyAdmin konusunu gözden geçirin.
Tünel Üzerinde Sorguları ve Dumpları Çalıştırma
Tünel açıkken, standart komut satırı araçları yerel iletilen portunuza işaret ederek normal şekilde çalışır:
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
El ile dump bir yedekleme stratejisi değil, kolaylık için kopyadır. Yalnızca çalıştırdığınız anlık kadar yenidir ve onu çalıştırdığınız tüm laptop'lar üzerinde bulunur. Kapsule zaten site'nin otomatik günlük yedeklerini alır ve 30 gün boyunca saklar. Yerel .sql dosyasına güvenmeden önce Taking a Backup konusunu gözden geçirin.
Sorun Giderme
Tüneli açarken "Address already in use". Makinenizdeki bir şey zaten o yerel portta. Başka bir port seçin; örneğin -L 3399:127.0.0.1:3306 ve istemcinizde portu eşleştirmek için değiştirin.
Veritabanı istemcisinden "Connection refused". Tünel ayakta değil. SSH terminalinin hala çalıştığını ve bir hata yazdırmadığını ve istemcinizde ki portu -L argümanındaki yerel porta eşleştirdiğinizi kontrol edin.
SSH bağlanıyor ama istemci hala zaman aşımına uğruyor. 127.0.0.1:3306'e ilettikten sonra ve genel hostname'e değil. Genel ada iletmek, sunucudan veritabanına interneti üzerinden ulaşmasını ister, bu da tam olarak engellenmiş olandır.
"Access denied for user". SSH girişi başarılı oldu ama MySQL kimlik bilgileri yanlış. Database sekmesinden kopyala simgeleri kullanarak kullanıcı adı ve parolayı yeniden kopyalayın; yeniden yazın ve doğru veritabanı adına bağlandığınızı kontrol edin.
"Permission denied (publickey)" MySQL'e ulaşmadan önce. Bu SSH katmanı, veritabanı değil. SSH Anahtarlarını Bir Site'ye Ekleme konusundaki sorun giderme bölümünü işleyin.
Sonraki Adım
- SFTP ile Dosya Yükleme dosya aktarımı için aynı SSH kimlik bilgilerini kullanır.
- phpMyAdmin Kullanmak tarayıcı tabanlı veritabanı çalışması için.
- Yedekten Geri Yükleme bir sorgu hedefledikten daha fazlasına gitmişse.