Delphi Can

Orjinalini görmek için tıklayınız: Hosttaki MySql Veritabanına Lokalden Bağlanmak
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhabalar,

Yaptığım bir çalışmayı fikir  olması açısından paylaşmak istiyorum,
Genelde SqlServer kullansamda bazen  bir hosttaki mysql veritabanına erişmem gerekiyor.
Ve bu mysqle doğrudan erişim genelde kapalıdır, browser üzerinden kendi yönetim paneli üzerinden erişilebilir,
belki dışarıdan erişim için farklı araçlar vardır ancak herhalükarda hosting firmasının buna izin vermesi port açması gerekir ki genelde vermezler.
Bende yaptığımız bir çalışma için mysql veritabanını lokalden izleme ihtiyacı duydum ve bunun için alttaki projeyi kendi kullanımım için geliştirdim.
nasıl çalışır;

Bir php sayfası yazdım, bunu hostta php dosyalarının arasına sallıyoruz. 
temel olarak şöyle çalışıyor,
Bu sayfaya alttaki ekrandada görünen sql script gönderip, 
orada çalıştırıp sonucunu json olarak alıp 
bu tarafta delphi tarafında rest nesneleri ile gelen sonucu karşılayıp 
tableye çevirip gridde görüntülüyorum. Bu arada json ve rest gerçekten çok hızlı çalışıyor.
tabi sadece select değil insert update delette yapılabilir yetkiyle kısıtlanabilir.
Ancak güvenlik olayı için @Halil Han BADEM kardeşimin paylaştığı 265 bit aes kriptolama kütüphanesini kullandım burada delphi php elele paslaşıyor, eline emeğine sağlık @Halil Han BADEM kardeşim. bunun dışında ikinci ek bir güvenlik olarak php HTTP Authentication  metodunuda kullanıyorum.
  function AES256CBCDecrypt($Data, $Key, $IVKey)
 {
$encryptionMethod = "aes-256-cbc";
return  openssl_decrypt($Data, $encryptionMethod, $Key, 0, $IVKey);
 }
 
MySqle ilk connect olduğunda yetkili olduğun tüm veritabanlarını alt kırılımlarda da tüm tablolarını ve diğer nesnelerini listeliyorum.
buradan neler yapılabilir, sayfa güncellemeleri, erp muhasebe entegrasyonları, ürün fiyat güncellemeleri, resim dizin menü güncellemelerinin hepsi buradan yapılabilir.
Dediğim gibi amacım veritabanını lokalden izleyebilip aksiyon alabilmek.
Bu fikir paylaşımımı sıkılmadan okuduğunuz için teşekkürler Smile


[attachment=2157]
Bu işi yapamadigimdan dolayı sunucu aldımSmile)

Aslında buradaki tek sorun MySQL e *.* İpden bağlanamamak.
(14-09-2022, Saat: 19:24)mcuyan Adlı Kullanıcıdan Alıntı: [ -> ]Bu işi yapamadigimdan dolayı sunucu aldımSmile)

Aslında buradaki tek sorun MySQL e *.* İpden bağlanamamak.


Bu metotla istediğin ipden bağlanabilirsin, çünkü sitende yayınladığın herhangi bir php sayfaya bağlanmaktan farkı yok, standart bir php sayfası işte , tek farkı şifreli alışverişte json data döndürüyor. Bir nevi webservis gibi çalışıyor.
Anladım. Performansını merak ettim sistemin..

Test edip burada paylaşırsanız ben kadar diğer arkadaşlar da müteşekkür olacaktır eminim.

PArdon ben tamamen yanlış anlamışım.

Ben user ların db (insert update delete..) işlemleri için Uygulamadan direk host üzerinde ki mysql sunucuya bağlanmak olarak anlamıştım. Tam okumadım. PArdon.
İşin özü, uzak veritabanı sunucusuna sanki local imiş gibi davranırsak sağlıklı bir bağlantı kurulması düşünülemez. Sağlık için bağlantı yarı-online olmalı. Yani işi olduğunda bağlan işini gör ve çık şeklinde.

REST bağlantı, ClientDataSet vb. oluşumlara bu nedenle gerek duyulmuş.  
Siz de kendinize özel bir gerekçeyle yerel çözüm üretmişsiniz. 
Burada önemli olan ihtiyacın belirlenmesi problemin masaya yatırılması ve çözümün hayata geçirilmesidir. Tebrik ederim iyi çalışma olmuş.
(14-09-2022, Saat: 22:17)mcuyan Adlı Kullanıcıdan Alıntı: [ -> ]Anladım. Performansını merak ettim sistemin..

Test edip burada paylaşırsanız ben kadar diğer arkadaşlar da müteşekkür olacaktır eminim.

PArdon ben tamamen yanlış anlamışım.

Ben user ların db (insert update delete..) işlemleri için Uygulamadan direk host üzerinde ki mysql sunucuya bağlanmak olarak anlamıştım. Tam okumadım. PArdon.

Smile Zaten öyle, sanırım biraz karmaşa oldu, @mcuyan kardeşim. 
üstte dediğin gibi user ların db (insert update delete..) işlemleri için uzaktaki Uygulamadan direk hosta bağlanması süreci üzerine inşa ettim programı. yani exe içerisinden göndereceğin komutlarla hosttaki mysqlde herşeyi yapabilirsin. arada iletişimi sağlayan özel bir php sayfası var o kadar.

performans olarakda tabi büyük bir tabloda select * yapmak lokalde bile maliyete sebep olurken
webde hemde encode decode işlemiyle biraz maliyeti olacaktır.
yaptığım testlerde birkaç bin satırı birkaç saniyede indirdiğimi gözlemlemiştim.
tabi sadece yazılım değil tabi donanımında ciddi etkisi var muhakkak.