MySql Connector 6.0.3 – .Net sorunları üzerine…

Evettt… Bana ait olan inceliyorum.com adlı sitemi .net platformunda tekrardan yazılımını güncelledim. Tabi Mssql veritabanımın çok şişmesi sonucunda mysql veritabanını kullanayım dedim. Gelin görünkü yeni sistemi açalı 2 gün olmasına rağmen ha yüzüklerin efendisi kitabının serisini okumuşum ha mysql connector da çıkan promlemlerin yazısını okumuşum
Anlayacağınız girmediğim site kalmadı.
İnşallah bu yazımın sizlere .net platformunda mysql kullanmak isteyenler için yararlı olacağını düşünmekteyim.
Gelelim sırayla karşıma çıkan hatalara
Sorun 1 :
error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
Yukarıdaki hatanın en büyük sebebi açılan connectionların kapatılmadığından dolayı çıkan sorundur. Bir örnekle açıklamak istersek : Hosting firmaları genellikle size 5 connection (bağlantı) yapabilmenize olanak sağlamaktadır. Yani bilgisayarınızda çalıştığınızda bağlantı sorunu yaşamazsınız fakat sunucu üzerine geçtiğinizde kapatmadığınız bağlantıların hepsinde hata (exception) fırlatacaktır. Onun içindirki açmış olduğunuz bağlantıları (connection) kapatmayı unutmayınız.
Benim sorunum yukarıdaki gibi değil malesef
Zaten o olsa acayip sevinecektim
bu sorun için bakmadığım forum, girmediğim site kalmadı. Zaten çoğu kişi laf kalabalığı yapmaktan öteye geçememişler. En sonunda kendimi mysql’ in forumlarına yazı yazmayı uygun gördüm. Şu saate kadar da bi ses soluk çıkmadı ama büyük bir ihtimalle connector da bir bug olduğunu söyleyebilirim. Araştırmalarım o yönde
inş bi cevap yazarlar ve bana çözüm üretirlerse bundan en büyük faydayı ben sağlayacağım
Şu anlık site çalışıyor fakat siteye aynı anda 100 kişi girdiğinde sitenin bömleyeceğini izlemekten zevk alacaklarını söyleyebilirim
Sorun 2 : Türkçe karakter sorunu
Keni makinamda çalıştığımda herhangi bir karakter sorunum yoktu. Veritabanını sunuya yükledim gene herhangi bir sorun yoktu ama sunucu üzerinden çalışmaya başladığımda o dehşet anı gördüm
Bütün türkçe karakterleri bi güzel i’ yi ı, ş’ yi s’ ye vs kendiliğinden çevirmiş
Bunun çözümü aslında son derece basit yapmanız gereken sadece ConnecitonString’inize aşağıdaki kodu eklemek :
DataSource=127.0.0.1;Database=veritabanı adı;UserName=kullanıcı adı;Password=şifre;character set=utf8;
Yukarıda görüldüğü gibi “character set=utf8;” kodunu ekleyerek türkçe karakter sorunu çözülmektedir. Bu arada ben utf8 kullanmaktayım eğer size mesela latin-5 kullanıyorsanız “latin5″ i yazmalısınız.
Sorun 3 : Sql sorgularında kullanılan “LIKE” ile ilgili sorun :
Illegal mix of collations (utf8_bin,NONE) and (utf8_general_ci,COERCIBLE) for operation ‘like’
Description: ;An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: MySql.Data.MySqlClient.MySqlException: Illegal mix of collations (utf8_bin,NONE) and (utf8_general_ci,COERCIBLE) for operation ‘like’
Karşıma bugün başka bir sorun daha çıktı
Sorun sitemde kullandığım arama kısmında kullanmış olduğum “LIKE” sorgusunun patlaması. Yukarıdanda anlayacağınız üzere benim karakter setim utf8_general_ci ‘dir. Tabi ben connection stringimde karakter setimi utf8 yapınca direk LIKE sorgularımda uıtf8_bin collectionunu kullanıyormuş. Onun için sizde veritabanınızın karkater setini utf8_bin yapmanız gerekmektedir. (NOT : tablo ve sütunlarıda karakterlerinide aynı şekilde düzeltmeniz gerekmektedir) Karakter setinizi düzelttiğinizde herhangi bir sorun olmayakcaktır. Gene siz latin5 falan kullanıyorsanız karakter setinizi latin5_bin olarak ayarlamanız gerekmektedir.
Bunda da gene bazı problemlerle karşıalacaksınız şöyleki : Eğer siz bütün alanları text yapmaz iseniz aramada istenilen sonuçları alamayacaksınız. Örnek olarak text yaptığınız alanda veriler şuna benzer biçimde görünecektir : x34sdc ama vchar olarak tanımladığınız alan ise : Nokia …
Birisi binary diğeri bildiğimiz karakaterler kümesi olacaktır. O sebebledirki arama sonuçlarında istenilen verileri getiremeyeceksiniz. Onun için bütün string alanlarını text yapmak zorunda kalacaksınız.
Daha başka sorunlarla karşılasırsam sizleri bilgilendirmeye çalışcam. Ama şunu söliyim bu gidişle MsSql’ e geçiş yapmak zorunda kalıcam…
Tarih : 05/05/2009
Sonuç : MySql den MsSql’ e geçiş yaptım… :/
More From EsPUnholy
- Asp.Net ‘ de Gmail tarzı Dosya Yükleme (File Upload)
- Asp.Net’ de istatistikleri grafikle göstermek
- Php ile MySql ‘den Xml oluşturmak
EsPUnholy Recommends
- Habbo Devil VERSION 3.6 2010 updated download link HQ (Does SEO Work)
- List the MySql Database using VB.NET (sivodayatech)
Yorum Yapın
Etiketler
Son Yazılar
- Cep telefonu kullanıcılarını mobil siteye nasıl yönlendirilir?
- require vs require_once
- IFrame ‘in yüksekliğini içeriğe göre ayarlamak
- Bmp uzantılı resim dosyasını jpg veya png olarak kaydetmek
- Php Resim Boyutlandırmasında Memory Limit sorunu
Son Yorumlar
- Php’ de Ajax yardımıyla dosya yükleme (File Upload) için chat
- Asp.Net’de Ajax kullanılarak CAPTCHA için Enes Pekkaya
- Asp.Net’de Ajax kullanılarak CAPTCHA için Cenk
- JQuery Form Kontrol için Sedat Kumcu
- Garanti Sanal Pos Kurulumu, Sorunlar ve Çözümler için Enes Pekkaya
Haftanın Özlü Sözü
Bağlantılar
- Hayata Tat Kat
- Innova Bilişim Çözümleri
- Onur Değerli
- Pleksus Bilişim Teknolojileri
- Sinan Gül
- Taner Günal
- Toppik – Minoxil
Arşivler
- Mart 2012
- Şubat 2012
- Ocak 2012
- Aralık 2011
- Kasım 2011
- Ekim 2011
- Eylül 2011
- Temmuz 2011
- Haziran 2011
- Mayıs 2011
- Mart 2011
- Ocak 2011
- Aralık 2010
- Kasım 2010
- Ekim 2010
- Eylül 2010
- Ağustos 2010
- Temmuz 2010
- Haziran 2010
- Mayıs 2010
- Nisan 2010
- Mart 2010
- Şubat 2010
- Ocak 2010
- Haziran 2009
- Mayıs 2009
- Nisan 2009
- Mart 2009

