RSS
 

Archive for the ‘MySQL’ Category

IIS7 – Error establishing a database connection Error

10 Feb

MySQL Logo

Merhaba,

Bugün Bloguma girdiğimde HTTP 500 Internet Server Error mesajı ile karşılaştım. Loglardan baktığımda “Error establishing a database connection” hatası ile karşılaştım.

Eğer sizde IIS 7.x üzerinde WordPress kullanıyorsanız, ve yüksek hitiniz var ise aynı problemle karşılaşabilirsiniz. Çözümü basit. Blogunuza özel bir MySQL Login Account’ı açıp wp-confing.php dosyasına bu bilgileri yazarak, blogunuzun bu giriş bilgileri ile MySQL Server’a bağlanmasını sağlayabilirsiniz.

Tek bir hesap oluşturup bütün MySQL DB alt yapısını kullanan yapılarlada da karşılaşabilir. Mümkün mertebe her application için bir mysql login account’ı oluşturunuz.

İyi Çalışmalar.

 
No Comments

Posted in MySQL

 

MySQL Proxy İle Performans

08 Feb

MySQL Logo

Merhaba,

ORACLE, MySQL’i alınca bir takım endişelere kapılmıştım ama yapılan çalışmalar ve beklenen politika değişiklikleri yapılmadan devam edildiği  için ORACLE’ın MySQL’i alması iyi olmuş. Türkiye’de yaşadığımız için DBA‘ları değil biz yazılımcıları daha çok ilgilendiren bir konu oluyor bu MySQL’in yeni ürünü MySQL Proxy. İsmi üzerinde Proxy. :) Çalışma mantığının basit hali aşağıdaki şemada açıklanmış. 128 Thread(İş parçacığı , Process değil!) ile çalıştığında daha önce sadece MySQL üzerinde caching v.s. ile performans çalışmaları ile yaptığım halinden, MySQL+MySQL Proxy %50′den fazla performans artışı sağlıyor. Şuan 0.8.0 versiyonunda olmasına rağmen bence ileride çok yoğun şekilde kullanılacak ve tutulacak bir üründür. Üstelik Open Source bir ürün.

MySQL Proxy Architecture

(“Büyük halini görmek için üzerine tıklayabilirsiniz.”)

Eğer indirdiyseniz. Windows kullananlar ile şimdi kurulum işlemlerine geçelim.

İndirdiğiniz sıkıştırılmış dosyayı C:\ , F:\ gibi kolay erişebileceğiniz bir dizinin içine atınız. Daha sonra bu klasörün içindeki bin dosyasının path’ini Windows PATH tanımlamasına ekleyiniz. Ben “F:\mysql-proxy-0.8.0-win32-x86\bin” bu dizine kurduğumdan bu path’i ekledim. Artık command line’dan mysql-proxy yazarak erişebilirsiniz. Vista ve Windows 7 kullanıcılarına Firewall burada bir uyarı verebilir. Bu izni vermezseniz MySQL Proxy network’e erişemeyeceğinden düzgün çalışamayacaktır. Bu izni vermeniz gerekmektedir.

Konfirgürasyonu biraz karışık geldi ilk baktığımda ondan kolay kullanım için basit bir program yazmayı düşünüyorum. Her zaman olduğu gibi tabii ki sizinlede paylaşacağım. :) Yoksa sinir kat sayınızın çarpanları artabilir. :D En geç haftasonuna kadar zaman bulabilirsem, yazıp hemen alt tarafa ekleyeceğim.

Yinede kendim denemek istiyorum diyorsanız; “mysql-proxy –help-all” şeklinde tüm MySQL App. Shell komutlarına erişebilirsiniz.

NOT: MySQL Server 5.1.x sürümlerinde istikrarlı çalışmaktadır. Daha önceki sürümlerinde henüz test edilmemiş. Problem çıkartma ihtimali yüksek.

İyi Çalışmalar.

 
1 Comment

Posted in MySQL

 

Kill All Process for MySQL ~ Kritik Hata Yönetimi

14 Dec

Merhaba,

Kısa bir süre önce karşılaştığım bir MySQL Query Process problemi sonrası yazdığım bir kod blogunu sizinle paylaşıyorum.

Aşağıdaki kodlar ile 200ms’nin üzerinde işlem kuyruğunda bekleyen işlemleri sonlandırabilirsiniz. Lütfen, kodlarını çalıştırmadan önce sisteminizdeki loglama ve kurtarma modülleri varsa çalıştıklarını check ediniz.

<?php
/**
 * Danger: KILL ALL MySQL SERVER PROCESS
 * UYARI: Tüm veri tabanı işlemlerini sonlandıran kod blogu
 * @author: Hakan DAMAR
 */
$dbhost  = "10.70.1.9";
$dbname  = "MySQLEnt";
$dbuser  = "rootkit";
$dbpass  = "**********";

@mysql_connect($dbhost,$dbuser,$dbpass) || die("Error:" .mysql_error());
mysql_select_db($dbname);

$T_Begin = mysql_query("BEGIN"); Require DB Engine Type = INNODB  for transaction
$result = mysql_query("SHOW FULL PROCESSLIST");
while ($row=mysql_fetch_array($result)) {
$process_id=$row["Id"];
for ($h=0;$row["Time"] &gt; 200;$sql=mysql_query("KILL $process_id")) {
        if(!$sql){ $T_ROLLBACK = mysql_query("ROLLBACK"); }
                else {
                        $T_COMMIT = mysql_query("COMMIT");
                        print $process_id."&lt;br&gt;";
          }
    }
}
?>

Yukarıdaki kodlarda sadece processleri kill eden tarafa yoğunlaşınız. Çalışır bir örnek sunabilmek adına bazı tarafları express kodlanmıştır. Siz kendi yazılımınıza göre entegre kullanabilirsiniz.

İyi Çalışmalar,

Hakan DAMAR

 
No Comments

Posted in MySQL, PHP

 

MySQL İle Basit Bir Veri Tabanı Oluşturma

14 Aug

Merhaba Sevgili Okurlar,

MySQL’e yeni başlayan arkadaşlardan gelen istek üzerine bir adet basit MySQL Veri Tabanı Hazırlıyorum.

create table e_uzman(

UzmanID int(5) not null auto_increment,

UzmanAdi varchar(45) not null,

UzmanSAdi varchar(50),

UzmanPara decimal(10,2),

Primary Key(UzmanID)

);

Yukarıdaki veri tabanında bir kişinin adi,soyadi,hesabındaki para’yı tutabilirsiniz. Sorgular şu şekilde olacaktır.

SELECT * FROM e_uzman

Eğer Şartlı sorgulama yapacaksanız:

SELECT * FROM e_uzman WHERE UzmanID > 5

şeklinde olacaktır.

İleride T-SQL derslerinde bunların hepsine ayrıntılı gireceğimizden şimdilik sadece istediğiniz olsun diye yazdım. Ayrıntılı olarak gireceğim. Veri tabanı çok önemli bir konudur. Hatta programladan bile bazı noktalarda önemlidir. Neyse şimdilik girmiyorum. İleride değineceğiz.

Saygılar,

Hakan DAMAR

 
No Comments

Posted in MySQL