[Çözüldü] odbc_connect çalışmıyor

Başlatan karabilal, 12 Şubat 2011 - 09:53:11

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

karabilal

Merhabalar ubuntu desktop kullanıyorum. Windows ortamında easyphp ile yaptığım proje çalışıyor. Ama ubutunuya attığımda çalışmıyor ve hiçbir hata mesajıda yok. Sanırım odbc_connect fonskyionudnan kaynaklanıyor. Çünkü ondan öncesi * her şey çalışıyor ama oraya geldimi duruyor. Bu konuda yardımcı olur musunuz?

Ayrıca apt-get install libmyodbc
komutu ile yüklemeleri yaptım.

muzir

      @karabilal öncelikle libmyodbc paketini kurduğunu söylemişssin ama gerekli veritabanı ve sunucu kurulumlarını yaptın mı? Yani sağlıklı bir şekilde apache de herhangi bir sayfa görüntüleyebiliyor musun? Ayrıca bu başlığı Programramlama kategorisinde php altından açsan daha çok ilgili kişiye ulaşacağına inanıyorum.
Bir Tellioğlu asla geç kalmaz...

karabilal

veritabanı ve php çalışıyor çünkü şu anda herşeyim çalışıyor yani kullanımda. Ama odbc_connect sayfaları çalışmıyor. Neden acaba.

yakusha

ewreka :)

bunun sebebini ben biliyorum ve hemen yardım edeyim...

odbc_connect php fonksiyonunu kullanabilmek için unixodbc ve freetds paketlerinin kurulu ve yapılandırılmış olması gerekiyor...

bunun için şu makale işinizi görecektir :)

http://www.cinkindustries.com/2010/07/23/ms-sql-in-ubuntu/

tabii burda veritabanınızı belirtmemişsiniz, o sebeple mssql diye düşünmek zorunda kaldım.
Artık bu forumu kullanmıyor.

karabilal

Hocam ne diyorsa hepsini yaptım ama olmadı. Php sayfamda ODBC mssql bağlantısı olmuyor. Bu konuda yardımcı olabilir misiniz yada türkça kaynak yokmudur.

yakusha

türkçe kaynak bulamadım ben de, bulabildiğim tek makale budur...

sonra verilen makaledeki gibi yaptım

/etc/freetds.conf dosyam

#   $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $
#
# This file is installed by FreeTDS if no file by the same
# name is found in the installation directory. 
#
# For information about the layout of this file and its settings,
# see the freetds.conf manpage "man freetds.conf". 

# Global settings are overridden by those in a database
# server specific section
[global]
        # TDS protocol version
; tds version = 4.2

# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff

# Command and connection timeouts
; timeout = 10
; connect timeout = 10

# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field. 
# Try setting 'text size' to a more reasonable limit
text size = 64512

# A typical Sybase server
[egServer50]
host = symachine.domain.com
port = 5000
tds version = 5.0

# A typical Microsoft server
[egServer70]
host = ntmachine.domain.com
port = 1433
tds version = 7.0


/etc/odbc.ini dosyam

[dengesql]
Description = dengesql
Driver = MSSQL
File = 1
Server = 192.168.1.100\SQLEXPRESS
Database = mydatabase
Address = 192.168.1.100
#UID = sa
#PWD = parolam
Port = 1433


/etc/odbcinst.ini dosyam

[MSSQL]
Description = Microsoft SQL Driver
Driver = /usr/lib/odbc/libtdsodbc.so
Driver64 = /usr/lib/odbc
Setup = /usr/lib/odbc/libtdsS.so
Setup64 = /usr/lib/odbc
UsageCount = 1
CPTimeout =
CPReuse =


bir de php dosyam şöyle

$conn = odbc_connect('dengesql','sa','parolam');
if (!$conn)
{
echo odbc_errormsg();
}


burda dengesql diye oluşturduğum şeye dikkat, çünkü aynı anda bunu odbc.ini dosyasında da tanımlamışım :)

bilemiyorum, işte ben bunlar ile bağlanmış ve çalışır durumdayım...

tabii unixodbc ve freetds paketlerini linux altında kurmam gerekti :)
Artık bu forumu kullanmıyor.

karabilal

[unixODBC][Driver Manager]Data source name not found, and no default driver specified
Yukarıdaki hatayı aldım errormsg() bölümünden neden acaba?

karabilal

Merhaba yaklaşık 4 gündür bu konu üzerinde araştırmalar yapmaktayım. Şimdi hocam Ubuntu Dekstop sürümüm bulunmakta. Sanırım ODBC bağlantıları yani MSSQL bağlantıları için ayarları yapılmamış ve bu konuda fazla bilgim yok. Windows bilgisarımda EASYPHP programı ile yaptığım PHP sayfası çalışmakta. Ama UBUNTU sunucuya attığım zaman çalışmadığını fark ettim  ve errormsg() fonksiyonu ile çıkan hatayı görmek istedim ve aşağıdaki hatayı aldım.

[unixODBC][Driver Manager]Data source name not found, and no default driver specified

Bu konuda bana yardımcı olabilir misiniz. 4 gün geçti ve yarın 5'inci günüm olacak. 4 Gün gerçekten çok büyük bir zaman bu konuda yardımcı olursanız sevinirim.

bytan

Konularını birleştirdim. 4 gün fazla olabilir ancak iki başlığın da faydası olmaz.

Sana bu başlık altında verilen önerilere baktın mı? Pek anladığım konular değil ama @yakusha çalıştırabildiğini söylemiş ve bir kaç örnek dosya vermiş; kurulması gereken iki paketten bahsetmiş. Senin sisteminde durum nedir? Bu dosyalarının içini düzenledin mi, söylenen  paketleri kurdun mu? Sen pek bilgi vermeyince haliyle sen de aradığın bilgiyi bulamıyorsun.

Son verdiğin hatayı arattığımda ulaştığım sayfada genel sebeplerden ve olası çözüm yollarından bahsetmişler:

http://www.easysoft.com/developer/interfaces/odbc/linux.html

Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

yakusha

Data source name not found, and no default driver specified

data source name tanımlanmamış...

odbc.ini dosyasından benim yaptığım gibi tanımlarsanız çalışacaktır :) sonra çağırırken de aynı şekilde çağırırsınız...

$conn = odbc_connect('dengesql','sa','parolam');

burda dengesql diye gösterilen data source name (dsn)
Artık bu forumu kullanmıyor.

karabilal

#10
Hocam Aynısını Yaptım ama gene aynı hatayı alıyorum. Lütfen yardımcı olun.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 18 Şubat 2011 - 09:16:09

Hocam bu konuda bana yardımcı olabilecek birisi var mı? Gerçekten zor durumdayım.

karabilal

Konuyu güncellemekte fayda var  ;)

bytan

Alıntı yapılan: bytan - 16 Şubat 2011 - 18:15:02
Sen pek bilgi vermeyince haliyle sen de aradığın bilgiyi bulamıyorsun.
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

karabilal

Ne tür bilgi istiyorsanız ben vereyim hocam. istiyorsanız herşeye baştan başlayalım.

bytan

@karabilal,

Mesela @yakusha'nın belirttiği dosyaların içerikleri son durumda şu an sende nasıl? O kurulması gerektiği belirtilen iki paket sisteminde kurulu mu? .. gibi daha önce bahsi geçen konularda bilgiler verebilirsin.
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

karabilal

O adreste yazılarınların hepsini yaptım. İngilizcem olmadığı için gösterdikleri kodları uyguladım çıkan sonuçlar doğrultusunda yoluma devam ettim.

bytan

@karabilal,

Ben bu konudan anlamıyorum. Ama bakıp ve öğrenmek istediğim sana sorduğum dosyanın içeriğinin nasıl düzenlendiği. Eğer dosyaların içeriğini buraya aktarmazsan tam olarak nasıl düzenlenmiş olduğunu bilemeyiz. Ayrıca üç oldu soruyorum, belirtilen iki paket sistemine kurulu mu? Yardım etmek istiyorum ama sorduklarıma da karşılık alamıyorum.
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

karabilal

Evet üstad ikisini kurdum
ve odbc.ini dosyam bu şekilde

[dengesql]
Description = dengesql
Driver = MSSQL
File = 1
Servername = 192.168.1.2
Database = TESTDATA
Address = 192.168.1.2
#UID = ROOT
#PWD = ROOT
Port = 1433

bytan

Php dosyandaki ilgili bağlantı satırları nasıl? Senin sisteminde de mi dengesql olarak geçiyor peki?
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

karabilal

#19
Şimdi makaleri tekrar okudum ve tekrar kurdum .

[unixODBC][FreeTDS][SQL Server]Unable to connect to data source

hatasını almaya devam ediyorum ama bir yerde daha hata aldım. ODBC paketlerini kurarken http://www.cinkindustries.com/2010/07/23/ms-sql-in-ubuntu/  bu adresiki herşeyi yaptım ama  şunu yaparken hata alıyorum
(It was pointed out to me that in the new version of Ubuntu, you may need to replace "–with-unixodbc=/usr/local" with "–with-unixodbc=/usr/")
yukarıdaki kodun hata çıktısı ise "–with-unixodbc=/usr/local": Böyle bir dosya ya da dizin yok sanırım son işlemi yapamadığımdan kurulum tam anlamıyla gerçekleşemiyor. Bu konuda yardımcı olur musunuz?



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 26 Şubat 2011 - 11:55:39

bu konuda yardımcı olabilecek var mı? rica ediyorum

bytan

Verdiğin satırla birlikte tam çıktıyı aktarırsan hatanın ne olduğunu anlamaya çalışabiliriz. Hata iletisini yollamışsın ama verdiğin satırı ve durumunu göremiyoruz.
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

karabilal

sunucu@sunucu-ProLiant-ML110-G5:~$ –with-unixodbc=/usr/local
bash: –with-unixodbc=/usr/local: Böyle bir dosya ya da dizin yok
sunucu@sunucu-ProLiant-ML110-G5:~$ "–with-unixodbc=/usr/local" with "–with-unixodbc=/usr/"
bash: "–with-unixodbc=/usr/local": Böyle bir dosya ya da dizin yok
sunucu@sunucu-ProLiant-ML110-G5:~$


Hocam yukarıdaki gibi yapıyorum. Şimdiden teşekkür ederim.



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 26 Şubat 2011 - 16:16:06

buda bağlantı dosyam

  $conn = odbc_connect('dengesql','KULLANICIADIMIYAZIYOM','PAROLAMIYAZIYOM');

   if (!$conn)

   {

      echo odbc_errormsg();

   }

bytan

Sisteminde unixodbc nereye kurulu?

dpkg -L unixodbc-dev

Bağlanmaya çalıştığın veritabanının adı dengesql mi?
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

karabilal

/.
/usr
/usr/lib
/usr/lib/libgtrtst.a
/usr/lib/libodbc.a
/usr/lib/libodbccr.a
/usr/lib/libodbcinst.a
/usr/lib/libodbcinstQ.a
/usr/lib/libgtrtst.la
/usr/lib/libodbc.la
/usr/lib/libodbccr.la
/usr/lib/libodbcinst.la
/usr/lib/libodbcinstQ.la
/usr/include
/usr/include/autotest.h
/usr/include/odbcinst.h
/usr/include/odbcinstext.h
/usr/include/sql.h
/usr/include/sqlext.h
/usr/include/sqltypes.h
/usr/include/sqlucode.h
/usr/include/unixodbc_conf.h
/usr/include/uodbc_extras.h
/usr/include/uodbc_stats.h
/usr/share
/usr/share/doc
/usr/share/doc/unixodbc-dev
/usr/share/doc/unixodbc-dev/copyright
/usr/share/doc/unixodbc-dev/changelog.Debian.gz
/usr/lib/libgtrtst.so
/usr/lib/libodbc.so
/usr/lib/libodbccr.so
/usr/lib/libodbcinst.so
/usr/lib/libodbcinstQ.so


yukarıdaki kodlar çıktı.

evet başlanmaya çaıştığım veritabanın adı dengesql değil sadece odbc.ini dosyasında dengesql diye tanıtım yaptım.

bytan

Doğrusu hangisiyse ona uygun şekilde bu tanımlamaları yapmalısın.

–with-unixodbc=/usr/lib olarak parametreyi uygulamaya çalışabilirsin.

Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST