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… :/
Yorum Yapın
Etiketler
Son Yazılar
- Uzak sunucuda bulunan android cihaz ile otomasyon
- Mac’ de çoklu Java versiyon yönetimi
- İş yarar docker komutları
- Eski branchlerin git’ den silinmesi
- Kubernetes Süresi Dolmuş Sertifikaları Yenilemek
Son Yorumlar
- Hosting koşuşturması için
- Garanti Sanal Pos Kurulumu, Sorunlar ve Çözümler için
- Visual Studio Toolbox’a component(bileşen) eklenmesi için
- “File is too large for destination file system” hatasını gidermek için
- Php’de UTF-8 Türkçe karakter sorunu ve çözümü için
Bağlantılar
Arşivler
- Kasım 2021
- Eylül 2021
- Ağustos 2021
- Temmuz 2021
- Aralık 2020
- Kasım 2020
- Ekim 2020
- Eylül 2020
- Kasım 2017
- Mayıs 2017
- Mart 2017
- Şubat 2017
- Ocak 2017
- Nisan 2015
- Aralık 2014
- Mayıs 2014
- Eylül 2013
- Haziran 2013
- Şubat 2013
- Kasım 2012
- Ekim 2012
- Eylül 2012
- 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