Merhaba arkadaşlar bugün bana 4 saat kafayı yediren bir sunucudan bahsetmek istiyorum.PHP PDO mssql server bağlanma.
Sunucu windows server 2012 ve üzerinde plesk 11 versiyonu var her şey buraya kadar güzel. İşin patladığı nokta ise sunucu üzerine birde harici microsoft sql 2012 kurulmuş. :(( Oda olabilir dedik biz işimize bakalım yahu. Standart olarak kullanmış olduğum odbc bağlantı sınıfımı kullanarak bağlanmak istedim aldığım hata ise kocaman
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.
Kendimden şüphe ederek bütün ayarları 3 defa kontrol ettim. Bağlantı şekillerini değiştirdim farklı uygulamalar denedim banamısın demedi. Dedim herhalde verilen bilgiler hatalı aç sql management studio kontrol et arkadaş bağlanıyormu? sıkıntı yok bağlandı.
Dedim bende bir sorun var kalk hava al, sevgilinle konuş dedim. Aradan 10 dk geçtikten sonra tekrar kontrol ettim aşamaları izledim sıkıntı yok locale çevirdim bağlantımı. Aradım ilgili arkadaşı uzak masa üstü bilgilerini alıp kendim makinaya el attım nimed pipese kadar her ayarı kontrol ettim 2 3 sorunu düzelttim yine aynı. Bir ışık yandı aklımda bir abimin tavsiyesi olan PDO dön bakalım ne olacak. Oturdum kodlarımı güncelledim pdo işlemini döndüm. Bu seferda hata kodları değişti ama bağlanmama sorunu değişmedi. Dedim yerim böyle işi kendi makinamı kobay haline getirip birazda araştırıp testler ile sonucu çözdüm şimdi aşağıda bu işlemi nasıl yaptığımı anlatacağım sıkıntı yaşayan olursa yardımcı olurum.
Gelelim Olaya
Bu arada pdo döndükten sonra
Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 208 [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid object name
tarzında bir hata alırsanızda aşağıdaki yolu izlemenizi öneririm.
1. servislerinizi stop ediniz.
2. Microsoft PHP SQL Driver indirin
3. php.ini dosyanıza
[PHP_PDO_MSSQL] extension=php_pdo_sqlsrv_53_ts_vc9.dll
ekleyin
4. Bağlantı dosyanızı oluşturun
$db_server = '127.0.0.1'; $db_database = 'test'; $db_user = 'username'; $db_passwd = 'password'; $db = new PDO("sqlsrv:server=$db_server;database=$db_database;", $db_user, $db_passwd);
Yukarıdaki işlemler windows server sistemleri için geçerli olmaktadır. Bu işlemler php 5.3 için uygulanmış olmaktadır. PHP versiyonlarına göre işlemler değişiklik göstermektedir.
Redhat sistemlerde bu işlem biraz daha karışık şekilde oluşmaktadır, farklı bir yazımda linux işletim sistemlerinde bu işlemin nasıl yapıldığını size uzun bir şekilde resimlendirip bu konuyuda sizlere aktaracağım.
bu işlemler sonrasında sıkıntınız sona ermiş olacaktır. Bu yolu izleyerek PHP PDO mssql server bağlanma işlemlerini yapabilirsiniz.
Teşekkürler Üstad.
sql server 2012 kullanıyorum prot üzerinden bağlantı yapıyorum. düşük seviyede bir html ile admin paneli yaptım. sql de yaptıgım veritabanını ip üzerinde ve port üzerinden paylaştırıyorum.ne yaptıysam bağlanamadım.yardımcı olurmusunuz.
Merhabalar, bağlantı sağlamaya çalıştığınız makina local şeklindemi yoksa farklı iki makinadanmı haberleştirmeye çalışıyorsunuz. Cevaplar buna göre değişmektedir, firewall olabilir makina üzerinde odbc kurulu olmayabilir. Detaylı bilgi verir yada mail atarsanız yardımcı olmaya çalışırım.
teşekkür